web-dev-qa-db-ja.com

デフォルト値をRails generate migrationに渡すことはできますか?

デフォルト値Rails g migrationコマンドに渡すことができるかどうか知りたい。何かのようなもの:

 $ Rails generate migration add_disabled_to_users disabled:boolean:false #where false is default value for disabled attribute

生成するため:

class AddDisabledToUsers < ActiveRecord::Migration
  def change
    add_column :users, :disabled, :boolean, default: false
  end
end
28
Leantraxxx

できません: https://guides.rubyonrails.org/active_record_migrations.html#column-modifiers

nullおよびdefaultは、コマンドラインでは指定できません。

17
Benj

Rails移行ジェネレーターはデフォルト値を処理しませんが、移行ファイルの生成後、次のコードで移行ファイルを更新する必要があります

add_column :users, :disabled, :boolean, default: false

また、このリンクを見ることができます- http://api.rubyonrails.org/classes/ActiveRecord/Migration.html

23
Deepti Kakade

Railsはデフォルト値を処理しません。現在のところ、ターミナルin Rails migration。

あなたが望むものを達成するために、以下の手順に従ってください

1)。実行する

$ Rails generate migration add_disabled_to_users disabled:boolean

2)。作成された新しい移行ファイルを編集して、新しい列の値をTRUE/FALSEに設定します。

class AddDisabledToUsers < ActiveRecord::Migration
  def change
    add_column :users, :disabled, :boolean, default: false
  end
end

3)。上記の生成された移行を実行して実行します。

$ rake db:migrate
3
Subhash Chandra

Rails 3.2は、 http://guides.rubyonrails.org/v3.2/migrations.html に基づくコマンドラインタイプ修飾子をサポートしていないようです。

Rails 4.1のドキュメントは type modifiers を参照していますが、 Rails 3.2 のドキュメントはページ内のWord "modifier"に言及していません。

0
Andrew Grimm