Ruby on rails Rails枚举映射到可显示文本
Rails 4枚举实现非常适合创建状态字段,例如Ruby on rails Rails枚举映射到可显示文本,ruby-on-rails,enums,Ruby On Rails,Enums,Rails 4枚举实现非常适合创建状态字段,例如 class User < ActiveRecord::Base enum status: [:goodstanding, :outstanding] 显示我的文本。关于如何使用较新的枚举类型执行此操作,您有什么建议吗?是的,这可以在rails 4.1+中执行,但它的行为出乎意料,并且已在rails 5分支中修复 资料来源: 例如: class User enum name: { foo: 'myfoo', bar:
class User < ActiveRecord::Base
enum status: [:goodstanding, :outstanding]
显示我的文本。关于如何使用较新的枚举类型执行此操作,您有什么建议吗?是的,这可以在rails 4.1+中执行,但它的行为出乎意料,并且已在rails 5分支中修复 资料来源: 例如:
class User
enum name: {
foo: 'myfoo',
bar: 'mybar'
}
end
现在,当您这样做时:
u = User.new(name: 'foo')
u.save
u = User.last
u.name
=> "foo"
u[:name]
=> "myfoo"
然后它将执行:
INSERT INTO `users` (`name`, `created_at`, `updated_at`) VALUES ('myfoo', '2015-07-20 04:53:16', '2015-07-20 04:53:16')
对于foo
它插入了myfoo
。现在,当您这样做时:
u = User.new(name: 'foo')
u.save
u = User.last
u.name
=> "foo"
u[:name]
=> "myfoo"
我试过上面的方法。虽然也有各种各样的宝石可供选择,但我从未使用过它们,但它们可能对您有所帮助:
资料来源:
希望这能有所帮助。+1适用于Rails 5中的fixed in Rails。我在其他地方看到了这个答案,也看到了一些这样的珍宝(不是列举)。我只是不想用宝石来做这个。期待在Rails 5中使用它,谢谢。有人能用一个更好的例子来更新这个问题吗?作为一个新手,这个例子非常令人困惑。