Если у меня есть модель ActiveRecord, как показано ниже
class Foo < ActiveRecord::Base
validates_inclusion_of :value, :in => self.allowed_types
def self.allowed_types
# some code that returns an enumerable
end
end
Это не работает, потому что метод allowed_types не был определен в то время, когда оценивается проверка. Все исправления, которые я могу придумать, в основном связаны с перемещением определения метода над проверкой, чтобы оно было доступно при необходимости.
Я понимаю, что это может быть больше вопрос стиля кодирования, чем что-либо еще (я хочу, чтобы все мои проверки были на вверху модели и методы внизу), но я чувствую, что должно быть какое-то решение для этого, возможно, связанное с ленивой оценкой начальной загрузки модели?
возможно ли то, что я хочу сделать? Должен ли я просто определять метод над проверкой или есть лучшее решение для проверки, чтобы добиться того, что я хочу.