在子模型中获取父值

我有一个名为RsvpRegistrations的模型

belongs_to :rsvp 

我需要在我的validation中使用来自父’rsvp’对象的值,例如

 validates_presence_of :phone if self.rsvp.phone 

(Rsvp.phone是布尔值)

但这不起作用。 我得到的错误是未定义的方法`rsvp’。 如何访问父对象及其值?

一旦我运行它,我有其他类似的validation运行,所以我想我需要抓住父’rsvp’一次,然后在我的其他validation中引用它。

提前致谢。

 validates_presence_of :phone, :if => Proc.new { |obj| obj.rsvp.phone? } 

这里有更多选择

如果您有多个所有引用RSVP的validation,则创建自定义validation方法可能更有效:

 # app/models/rsvp_registration.rb def RsvpRegistration def validate rsvp = self.rsvp errors.add(:rsvp, 'Phone is missing') unless rsvp.phone? errors.add(:rsvp, 'Other messages') if condition end end