这个真的有我。我在我的用户模型中进行了验证:
validates :first_class, :presence => true, :inclusion => %w(Fighter Ranger Magician)
现在,我在我的控制台中尝试创建示例:
ruby-1.9.2-p180 :053 > new = User.create(:first_class => 'Magician')
=> #<User id: nil, ...
ruby-1.9.2-p180 :054 > new.errors
=> {:first_class=>["can't be blank", "is not included in the list"]}
为什么我收到此验证错误?我严重无法理解这一点。
(如果我删除了验证,则会创建用户,但first_class为nil:O)
答案 0 :(得分:2)
也许可以尝试在模型文件中使用attr_accessible :first_class
您必须通过批量分配告诉rails哪些属性是可写的。 new
方法采用参数哈希,这被认为是质量赋值。 update_attributes
也是如此。
要验证,您可以创建一个新实例并说出object.first_class = 'Magician'
。如果这也失败了,那么你知道attr_accessible
不是问题。