Очиститель без проверки при проверке логического значения - PullRequest
1 голос
/ 16 июня 2020

Я просто хочу спросить, есть ли более чистый способ сделать эту проверку, поскольку expirable имеет логическое значение, и я думаю, что метод для него не нужен.

validates :shelf_life, numericality: { greater_than_or_equal_to: 4 },
          allow_nil: true,
          unless: :expirable?

def expirable?
  self.expirable
end

Я пробовал это как это

  validates :shelf_life, numericality: { greater_than_or_equal_to: 4 },
            allow_nil: true,
            unless: self.expirable

но это не работает.

1 Ответ

1 голос
/ 16 июня 2020

ActiveRecord автоматически добавляет [attribute]? методы для всех логических атрибутов.

Учитывая это, я думаю, вы можете использовать свое собственное решение, но без определения собственного метода:

validates :shelf_life, numericality: { greater_than_or_equal_to: 4 },
      allow_nil: true,
      unless: :expirable?
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...