У меня есть модельRails прохождения теста проверки
class Vehicule < ActiveRecord::Base
before_validation :set_principal, :if =>:new_record?
private
def set_principal
self.principal ||= !!principal
end
end
Если я проверить это, когда я Vehicule.new.valid?
всегда возвращают ложь. Почему мне пришлось добавить true
в функцию, чтобы пройти тест?
private
def set_principal
self.principal ||= !!principal
true
end
Поскольку вы не передаете 'принципал', тогда он идет как' nil', а если '!! nil => false' – 7urkm3n
. Если функция возвращает false, проверка модели не выполняется? Я просто хотел установить 'false' в атрибут' main'. Не сделать модель невозможной для создания. Если я хочу, чтобы я мог создать «транспортное средство», моя функция должна вернуть true? Это правильный путь? –
Да 'motorule.new.valid?' Возвращает 'false' модель не будет сохранена. – 7urkm3n