1

RsvpRegistrationsというモデルがあります

belongs_to :rsvp

次のような検証では、親の「rsvp」オブジェクトの値を使用する必要があります。

validates_presence_of :phone if self.rsvp.phone 

(Rsvp.phoneはブール値です)

しかし、これは機能しません。私が得るエラーは未定義のメソッド`rsvp'です。親オブジェクトとその値にアクセスするにはどうすればよいですか?

動作するようになったら、他の同様の検証を実行する必要があるため、親の「rsvp」を一度取得してから、他の検証で参照する必要があると考えています。

前もって感謝します。

4

2 に答える 2

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

ここでより多くのオプション

于 2011-07-12T22:26:25.923 に答える
0

すべてが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
于 2011-07-13T01:53:19.253 に答える