2013-04-26 49 views
1

我有一个竞赛和一个竞赛输入模型,前者包含一个表单和一个可选的“问题”字段,如果管理员用户没有填写则不会显示。在Rails中验证有条件显示的字段

比赛输入模型包括一个“答案”字段,只需要验证问题是否存在,但我不知道如何实现这一点 - 有没有办法利用belongs_to/has_many关联他们有?

+0

也许你正在寻找'validates_associated'? – 2013-04-26 10:16:51

回答

1

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

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

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

A railscast about conditional validations

+0

这正是我需要的 - 非常感谢你:) – sowasred2012 2013-04-26 11:46:46