我需要在数据库的users表中添加一个新列。我想要设置列的类型。该列表示用户性别。该集应该有两个选项。一种形式为男性“m”,另一种形式为女性“f”。
但是我没有找到任何添加具有集合类型的列的文档。
我该怎么做?
答案 0 :(得分:7)
使用什么数据库? MySQL的?如果您想使用SET数据类型,则必须手动执行,因为rails不支持它。但是,我只是
t.string :gender, :limit => 1
为方便起见。
答案 1 :(得分:3)
在您的用户模型中,您应添加以下行以要求M / F答案。
validates_inclusion_of :gender, :in => %w( m f M F)
答案 2 :(得分:1)
我想你想添加一个带有默认数据类型的性别列(如果我错了,请纠正我),如果有的话会有步骤
这里我假设'M'代表男性而“F”代表女性(如果你愿意,也可以使用整数)
创建迁移
ruby script/generate migration add_gender_column_to_users
这将为您创建一个迁移,顾名思义它会将性别列添加到您的用户表
迁移中的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
就是这样,希望这会有所帮助