Включение Rails Validation динамически - PullRequest
2 голосов
/ 23 января 2012
class A
  include ActiveModel::Validations
  attr_reader :operator
  def initialize(operator)
    @operator = operator
    validates_inclusion_of :operator, in => operators
  end

  def operators
    ....
  end
end

Здесь я хочу динамически проверять оператор для включения_. Операторы метода возвращают массив операторов, который является динамическим.

Приведенный выше код не работает. Как я могу реализовать проверку динамически? г

1 Ответ

3 голосов
/ 23 января 2012

Вы можете попробовать:

def initialize(operator)
  self.class.class_eval do
    validates_inclusion_of :operator, :in => operators
  end
end

, хотя я не понимаю, почему вы не можете просто определить это на уровне класса.Обратите внимание, что аргументом для: in может быть лямбда, подробности см. В: http://apidock.com/rails/ActiveModel/Validations/HelperMethods/validates_inclusion_of

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...