1

我有一个 Competition 和 Competition Entry 模型,前者包括一个表单和一个可选的“问题”字段,如果管理员用户不填写,则不会显示该字段。

Competition Entry 模型包含一个“Answer”字段,仅在存在问题时才需要验证,但我不知道如何实现 - 有没有办法利用他们拥有的 belongs_to/has_many 关联?

4

1 回答 1

1

您可以根据方法进行验证,并在该方法中检查关联的模型。

class CompetitionEntry  < ActiveRecord::Base
  validates :answer, :presence => true, :if => :validate_answer?

  def validate_answer?
    !self.competition.question.blank?
  end
end

关于条件验证的 railscast

于 2013-04-26T11:33:41.773 回答