我想使用生成器脚本在Rails中生成模型和相应的数据库表。数据库表具有“枚举”类型的字段。如何生成?
该表在SQL中的定义:
create table works {
id int unsigned not null auto_increment,
nickname varchar(20) not null,
sex enum('m', 'f') not null
};
Rails生成器命令:
script/generator work nickname:string sex:(what should I write here?)
最佳答案
Rails 4.1添加了 ActiveRecord::Enum
,它使用integer
-type列模拟枚举。只要愿意将列类型更改为数据库中的整数,就可以使用它们。
要使用这些枚举,请将integer
放在您的generate命令中:
bin/rails generate Work nickname:string sex:integer
然后在生成的模型文件中添加对
enum
的调用:class Work < ActiveRecord::Base
enum sex: [ :male, :female ]
end
有关更多详细信息,请参见
Enum
’s documentation。
关于ruby-on-rails - 如何生成带有枚举类型字段的模型?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1137796/