ruby-on-rails - 如何生成带有枚举类型字段的模型?

标签 ruby-on-rails enums

我想使用生成器脚本在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/

相关文章:

java - 按字段对一组元素进行排序

ruby-on-rails - 仅当子项具有特定属性时才查询对象

ruby-on-rails - 在 ruby​​/rails 中验证 UUID 字符串

ruby-on-rails - Rails has_many 关联删除父对象但不删除子对象

ruby-on-rails - 使用 Ruby 脚本调用时如何捕获 Rake 输出?

c++ - 如何检查枚举值是否有效?

wpf - 将枚举与 ObjectDataProvider 绑定(bind)

ruby-on-rails - 更改 rspec 中的 before 钩子(Hook)的顺序

java - 从枚举对象获取枚举值

java - 复制枚举数组