2014-07-04 78 views
19

我想知道是否可以将默认值传递给rails g migration命令。喜欢的东西:我可以将默认值传递给rails生成迁移吗?

$ 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 

回答

17

Rails的迁移发生器不处理默认值,但生成迁移文件后,应更新迁移n,其中下面的代码

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

你也可以看到这个链接文件 - Rails中http://api.rubyonrails.org/classes/ActiveRecord/Migration.html

+1

我知道我可以修改之后的迁移。我想在终端上传递默认值作为参数。上下文:在一个自定义生成器中,我正在执行:'generate“migration add_demo_to _#{table_name} demo:布尔值” – Leantraxxx

2

默认迁移产生不处理默认值,周围也没有办法,截至目前,指定通过终端定义的默认值在rails迁移中。

你想按照以下步骤来实现你想要的东西

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 
+2

正如我对Deepti Kakade所说的那样,我知道我可以修改之后的迁移。这不是我问的。 – Leantraxxx

相关问题