Вы также можете рассмотреть возможность использования раздела validates_associated
, чтобы проверить, действительны ли связанные объекты.Кроме того, еще один более чистый способ продвижения вперед и обеспечения присутствия входа и выхода (не ноль) заключается в следующем:
validates_presence_of :entrance_or_foo
def entrance_or_foo
entrance and foo
end
Затем вы можете очистить свой метод пожарной опасности, чтобы он выглядел следующим образом:
def not_a_fire_hazard
if enterance.location != foo.location
errors.add_to_base('If there is a fire you will most likely die')
end
end
Вам не нужно возвращать false в приведенном выше определении.
Как отмечает Франсуа в комментариях, exit - это метод, определенный в модуле ядра.,Вам следует переименовать ваш класс, чтобы не путать с определенным в Ruby методом выхода.Я переименовал экземпляры выхода в foo в моем примере кода выше.