2013-10-31 33 views
2

我已經創建了用戶遷移導軌柱紅寶石,後來我添加的列,使用分配一個默認值上

軌道生成遷移add_usertype_to_users我的模型的用戶類型:字符串 ,其產生以下

class AddUsertypeToUsers < ActiveRecord::Migration 
    def change 
    add_column :users, :usertype, :string 
    end 
end 

現在我試圖將默認值分配給這個usertype作爲基本。

哪裏最好將默認值賦予此列,即遷移內部,在我的模型中,還是必須創建新的遷移?所有我想到的例子都是在創建列時創建遷移時的默認值,請讓我知道正確的方法。在遷移 預先感謝

回答

3

設置默認值是更好的。

你可以這樣定義

class AddUsertypeToUsers < ActiveRecord::Migration 
    def change 
    add_column :users, :usertype, :string, default: 'value' 
    end 
end 
+0

我試圖添加默認代碼中顯示的,但是當我試圖創建一個新的記錄時,它顯示我的usertype列沒有默認值。 –

+0

我必須創建新的遷移,否則我應該對當前的遷移進行更改,並應使用'bundle exec rake db:migrate'? –

+2

您應該回滾add_column遷移..然後運行rake db:使用默認遷移 – Debadatt

2

add_column :users, :usertype, :string, :default => "your_text"

+0

我已嘗試添加默認爲顯示在你的代碼默認值,但是當我試圖創造一個新的記錄,也沒有任何缺省值到我的用戶類型列。 –

+0

我必須創建新的遷移,或者我應該對當前的遷移進行更改,並且應該使用'bundle exec rake db:migrate'? –

+1

是的兄弟,你必須創建新的遷移,指定該列的默認值......像這樣:'def up change_column:users,:user_type:string,:default =>'your_string' end' –