Ошибка ActiveRecord?Или я ошибаюсь?(validates_presence_of if) - PullRequest
0 голосов
/ 30 апреля 2010

Хорошо:

User
    attr_accessible :name, :email, :email_confirmation

    validates_presence_of :email_confirmation if :email_changed?

Что происходит в следующей ситуации:

u = User.find 1
u.name = 'Fonzi'
u.name_changed? # => true
u.email_changed? # => false
u.valid? # => false : email_confirmation is required

В основном, если я изменю, если, если проверки не работают должным образом, не будет проверяться, если электронное письмо не изменилось, будет проверяться, если электронное письмо изменилось. Я думал, что IF указывает «запустить эту проверку, если следующая функция возвращает true. Кажется, что работает в обратном направлении!? Я просто ошибаюсь?

1 Ответ

4 голосов
/ 30 апреля 2010

Синтаксис немного перепутан для условных проверок. Вместо того, чтобы использовать обычное условное выражение после исправления, вы передаете методу валидации опцию «if», значением которой является метод, метод или строка. Так это должно выглядеть примерно так:

validates_presence_of :email_confirmation, :if => :email_changed?

Ознакомьтесь с документацией для получения полной информации.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...