获取子模型中的父值

发布于 2024-11-19 15:17:06 字数 336 浏览 5 评论 0原文

我有一个名为 RsvpRegistrations 的模型,

belongs_to :rsvp

我需要在验证中使用父“rsvp”对象中的值,例如

validates_presence_of :phone if self.rsvp.phone 

(Rsvp.phone 是布尔值)

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

一旦我让它工作,我就会运行其他类似的验证,所以我想我需要一次获取父级“rsvp”,然后在其他验证中引用它。

提前致谢。

I have a model called RsvpRegistrations with

belongs_to :rsvp

I need to use values from the parent 'rsvp' object in my validations such as

validates_presence_of :phone if self.rsvp.phone 

(Rsvp.phone is boolean)

But this doesn't work. The error I get is undefined method `rsvp'. How can I access the parent object and its values?

Once I get it working, I have other similar validations to run, so I'm thinking I need to grab the parent 'rsvp' one time and then reference it in my other validations.

Thanks in advance.

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

眼泪都笑了 2024-11-26 15:17:06
validates_presence_of :phone, :if => Proc.new { |obj| obj.rsvp.phone? }

更多选项此处

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

More options here

他是夢罘是命 2024-11-26 15:17:06

如果您有多个验证都引用 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

If you have multiple validations that all reference RSVP, it may be more efficient to create a custom validation method:

# 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
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文