получить родительские значения в дочерней модели - PullRequest
1 голос
/ 13 июля 2011

У меня есть модель RsvpRegistrations с

belongs_to :rsvp

Мне нужно использовать значения из родительского объекта rsvp в моих проверках, таких как

validates_presence_of :phone if self.rsvp.phone 

(Rsvp.phone логический)

Но это не работает. Я получаю ошибку - неопределенный метод `rsvp '. Как я могу получить доступ к родительскому объекту и его значениям?

После того, как я заработаю, у меня появятся другие подобные проверки, поэтому я думаю, что мне нужно один раз взять родительский 'rsvp' и затем сослаться на него в других моих проверках.

Заранее спасибо.

Ответы [ 2 ]

2 голосов
/ 13 июля 2011
validates_presence_of :phone, :if => Proc.new { |obj| obj.rsvp.phone? }

Дополнительные параметры здесь

0 голосов
/ 13 июля 2011

Если у вас есть несколько проверок, которые все ссылаются на 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
...