Ruby on Rails - 使用多个模型进行自定义验证



我发现很难用我定制的验证器进行一些验证。

在这里:

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是我想阅读的数字。这当然行不通。

有什么建议吗?

您可以使用 Proc 作为参数。像这样:

validates :baggage, :some => {:max => Proc.new{|record| record.flight.max_allowance}}

相关内容

  • 没有找到相关文章

最新更新