嵌套验证-模型



我有两个链接的模型(简化):

广告:

class Ad < ActiveRecord::Base
has_many :propositions
validates :pricemin
validates :pricemax
...

的命题:

class Proposition < ActiveRecord::Base
belongs_to :ad
attr_accessible :price_proposition
...

我试图为price_proposition(在"proposition"模型中)添加一个介于"pricemin"one_answers"pricemax"之间的限制。

我怎么能那样做呢?

谢谢你的帮助

通过Javascript进行客户端验证绝对是一种方法。但如果你想做服务器端验证,你可以这样做:

class Proposition < ActiveRecord::Base
  belongs_to :ad
  attr_accessible :price_proposition
  validate :price_proposition_in_range
  def price_proposition_in_range
    pricemin = self.ad.pricemin
    pricemax = self.ad.pricemax
    if self.price_proposition < pricemin || self.price_proposition > pricemax
      errors.add(:price_proposition, "Must be between #{pricemin} and #{pricemax}")
    end
  end
  .
  .
  .
end

当然,你可以在方法中添加进一步的检查,这取决于你是否想要允许空白等等。

最新更新