我只是将我的应用程序升级到rails 4.1.0.beta1
我有一个班级
class User < ActiveRecord::Base
enum usertype: { :employee => 10, :boss => 30, :manager => 40, :admin => 50 }
}
所有枚举功能都像user.boss一样有效吗? #ture
但是当我尝试通过
获取所有用户类型时User.usertypes
我为“usertypes”获得了一个未定义的方法
有帮助吗?
这是我从http://edgeapi.rubyonrails.org/classes/ActiveRecord/Enum.html
学到的链接编辑: 迁移
class CreateUsers < ActiveRecord::Migration
def change
create_table :users do |t|
t.string :email
t.string :password_digest
t.string :remember_token
t.boolean :is_locked
t.integer :usertype, default: 10
t.timestamp :last_login_at
t.timestamps
end
end
end
答案 0 :(得分:3)
您是否创建了正确的迁移?
枚举属性是值,它们映射到数据库中的整数,但可以按名称查询。
因此,您需要一个迁移,它将名为“usertype”的整数列添加到Users表中。你做到了吗?
编辑1 :
好的,只是测试了它,获取映射的类方法不适用于Rails 4.1.0.beta1,但是可以使用边缘Rails。所以希望将其纳入下一个测试版......
编辑2 :
另外,请查看this commit,它演示了使用常量而不是类方法访问Rails 4.1.0.beta1中的枚举映射的方式。因此,在您的情况下,您可以使用User::USERTYPE
来访问您的映射。