我有一个名为 RsvpRegistrations 的模型
belongs_to :rsvp
我需要在验证中使用来自父“rsvp”对象的值,例如
validates_presence_of :phone if self.rsvp.phone
(Rsvp.phone 是布尔值)
但这不起作用。我得到的错误是未定义的方法“rsvp”。如何访问父对象及其值?
一旦我让它工作,我还有其他类似的验证要运行,所以我想我需要一次抓住父'rsvp',然后在我的其他验证中引用它。
提前致谢。
我有一个名为 RsvpRegistrations 的模型
belongs_to :rsvp
我需要在验证中使用来自父“rsvp”对象的值,例如
validates_presence_of :phone if self.rsvp.phone
(Rsvp.phone 是布尔值)
但这不起作用。我得到的错误是未定义的方法“rsvp”。如何访问父对象及其值?
一旦我让它工作,我还有其他类似的验证要运行,所以我想我需要一次抓住父'rsvp',然后在我的其他验证中引用它。
提前致谢。
validates_presence_of :phone, :if => Proc.new { |obj| obj.rsvp.phone? }
更多选项在这里
如果您有多个都引用 RSVP 的验证,则创建自定义验证方法可能更有效:
# 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