Неопределенный метод 'on' для ActionModel - PullRequest
9 голосов
/ 23 сентября 2011

Я получаю следующую ошибку:

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' - это метод по умолчанию в ActiveRecord .Почему это не работает?

Ответы [ 2 ]

14 голосов
/ 27 сентября 2011

Если вы используете Rails 3, проблема в том, что больше нет метода on для класса Errors. Я думаю, что вы должны использовать «получить» сейчас. Итак:

error = case errors = model.errors.get(field)

Или ...

error = case errors = model.errors[field]
1 голос
/ 23 сентября 2011

Я проверил своего пользователя и u.errors - это ActiveRecord::Errors, хотя я вижу, что у вас есть ActiveModel::Error, я бы поработал над этим.

Тогда я не понимаю утверждения case errors = в вашем помощнике, мне любопытно узнать, как вы реализовали эту часть ...

...