Вы можете добавить дополнительные проверки, основанные на методе, который возвращает истину / ложь.Имейте в виду, что это только приведет к тому, что lease_id
присутствует, когда ownership == "LEASE"
.Это не ограничит добавление lease_id
в любом случае.
class Asset < ActiveRecord::Base
validates :lease_id, presence: { :if => :lease? }
def lease?
self.ownership == "LEASE"
end
end
Если вы хотите полностью ограничить lease_id
, вы можете использовать функцию обратного вызова для удаления свойства до сохранения объекта в БД.
class Asset < ActiveRecord::Base
before_create :restrict_lease_id
def restrict_lease_id
lease_id = nil if self.ownership == "LEASE"
end
end