我收到以下错误:
NoMethodError in Users#new
Showing .../app/views/users/form/_new.haml where line #7 raised:
undefined method `on' for #<ActiveModel::Errors:0x007fb599ec6610>
第7行的代码是:
7: = errors_for user, :first_name
和application_helper.rb:
def errors_for(model, field)
error = case errors = model.errors.on(field)
...
end
'on'是default method in ActiveRecord。为什么这不起作用?
答案 0 :(得分:14)
如果您正在使用Rails 3,那么问题是Errors类不再有“on”方法了。我想你现在应该用“得到”。所以:
error = case errors = model.errors.get(field)
或者...
error = case errors = model.errors[field]
答案 1 :(得分:1)
我检查了我的用户,u.errors
是ActiveRecord::Errors
,而我看到你有ActiveModel::Error
,我会继续努力。
然后我不理解帮助者中的case errors =
陈述,我很想知道你是如何实现这一部分的......