Rails 3: проверяет: присутствие => true vs validates_presence_of

Этот является полезным постом об этой проблеме.

Короче говоря, Rails автоматически загружает классы в вашем каталоге lib только в том случае, если они следуют соответствующим соглашениям об именах.

28
задан Oxfist 8 February 2018 в 19:28
поделиться

3 ответа

Все эти validates_whatever_of :attr макросы - это вызов validates :attr, :whatever => true.

Проблема в том, что вы используете validate , а не validates .

26
ответ дан 28 November 2019 в 03:16
поделиться

Фактически validates и validates_presence_of не совсем равны!

validates_presence_of позволяет вам также лениво проверять на примере значение в поле, включенном в другую таблицу.

Примерно так:

validates_presence_of :pay_type, :inclusion => PaymentType.names

Что-то, с чем вы не можете так легко справиться с чем-то подобным

validates :pay_type, presence, :inclusion => PaymentType.names

Потому что включение оценивается только в первый раз (не ленивым образом)

0
ответ дан 28 November 2019 в 03:16
поделиться

В Rails 3.x и 4.x - теперь рекомендуется использовать следующий синтаксис:

validates :email, presence: true
validates :password, presence: true

Вместо способа 2.x:

validates_presence_of :email
validates_presence_of :password
23
ответ дан 28 November 2019 в 03:16
поделиться
Другие вопросы по тегам:

Похожие вопросы: