Ruby on Rails: вопрос о validates_presence_of
У меня есть отношения в моей модели на основе ActiveRecord, которая выглядит так:
belongs_to :foo
Моя модель всегда должна иметь foo в ней, чтобы она была действительной. Мой вопрос заключается в том, что при использовании validates_presence of, какой из них подходит для использования:
validates_presence_of :foo
или
validates_presence_of :foo_id
Предполагая здесь, конечно, что foo_id - это соответствующий внешний ключ, который по умолчанию, если вы не меняете ключ ассоциации.
Ответы
Ответ 1
Первый: validates_presence_of :foo
(хотя я думаю, что второй тоже будет работать). В общем случае помощники проверки правильности Ruby работают с именами моделей, а не с явными именами столбцов. Вы можете использовать это в дополнение к validates_associated
для проверки состояния связанного объекта в дополнение к его присутствию.
Ответ 2
Возможно, вы захотите рассмотреть validates_associated
Это гарантирует, что ассоциация действительна.
Ответ 3
Я использую validates_presence_of :foo_id
. Он работает.