2010-04-22 71 views
2

我需要在數據庫中的用戶表中添加一個新列。我想要設置列的類型。該列代表用戶性別。該組應該有兩個選項。一種形式爲男性「m」,另一種形式爲女性「f」。在rails中創建一個包含數據庫遷移的集合列

但我還沒有找到任何文檔添加設置類型的列。

我該怎麼做?

回答

7

使用了什麼數據庫? MySQL的?如果你想使用SET數據類型,你必須手動完成,因爲rails不支持它。然而,我只是做

t.string :gender, :limit => 1 

爲了方便起見。

+0

是的,這是MySQL的。好吧,會做到這一點 – Lisinge 2010-04-22 10:32:34

3

在您的用戶模型中,您應該添加以下行以要求M/F答案。

validates_inclusion_of :gender, :in => %w(m f M F) 
1

我想你想用默認的數據類型(糾正我,如果我錯了)加上性別列,如果是這樣就不會有步驟

這裏我假定「M」是對於男性,「F」是女性(如果你願意,你可以使用整數也)

創建遷移

ruby script/generate migration add_gender_column_to_users 

這將創建一個遷移爲您和顧名思義它會加入性別專欄供您使用RS表

在遷移self.up操作添加此

add_column :users, :gender, :string, :default => 'm' 

在這裏說,我們要添加字符串類型,它的默認值的性別欄的「m」

,這增加self.down事件

remove_column :users, :gender 

所以你最終的遷移將是這個樣子

class AddGenderColumnToUsers < ActiveRecord::Migration 
    def self.up 
    add_column :users, :gender, :string, :default => 'm' 
    end 
    def self.down 
    remove_column :users, :gender 
    end 
end 

,並做了

rake db:migrate 

完蛋了,希望這有助於