Пользовательская проверка с несколькими моделями - PullRequest
0 голосов
/ 14 мая 2011

Мне сложно провести какую-либо проверку с помощью моего специального валидатора.

Вот оно:

class SomeValidator < ActiveModel::Validator
  def validate(record)
    if record.baggage > options[:max]
      record.errors[:baggage] << "is over #{options[:max]}."   
    end
  end
end

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

class Seat < ActiveRecord::Base
  belongs_to :flight
  validates :baggage, :some => {:max => flight.max_allowance}
end

Где вылет - другая модель, а max_allowance - это число, которое я хочу прочитать.Это не работает, конечно.

Есть предложения?

1 Ответ

0 голосов
/ 14 мая 2011

Вы можете использовать Proc в качестве аргумента.Как то так:

validates :baggage, :some => {:max => Proc.new{|record| record.flight.max_allowance}}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...