RoR:为什么这个验证失败了?

时间:2011-05-30 05:14:05

标签: ruby-on-rails

这个真的有我。我在我的用户模型中进行了验证:

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)

1 个答案:

答案 0 :(得分:2)

也许可以尝试在模型文件中使用attr_accessible :first_class

您必须通过批量分配告诉rails哪些属性是可写的。 new方法采用参数哈希,这被认为是质量赋值。 update_attributes也是如此。

要验证,您可以创建一个新实例并说出object.first_class = 'Magician'。如果这也失败了,那么你知道attr_accessible不是问题。