2014-07-04 122 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

相關問題