0

基準が真の場合、belongs_to 関連付けの検証をスキップしようとしています。以下は私のコードです

class Venue < ActiveRecord::Base
  has_many :events
  validates_presence_of :name, :postcode, :category
end

class Event < ActiveRecord::Base
  belongs_to :venue
  accepts_nested_attributes_for :venue
end

validates_presence_ofしたがって、Events モデルの基準が true の場合は、Venues の検証をスキップする必要があります。したがって、event_typeが「1」に等しかった場合、Venuesvalidates_presence_ofコールは無視されますが、 event_type「2」であった場合でもvalidates_presence_ofコールは実行されます。

4

2 に答える 2

0

このトピックに関するRailscastがあります。Railsの条件付き検証も確認できます

上記のリンクに基づいて、次のようなラムダを渡す必要があります。

:if => lambda { |venue| venue.event.try(:event_type) == 2 }
于 2013-08-29T10:53:07.367 に答える
0

結局、私はこれと非常によく似たことをしました

于 2013-09-09T08:57:01.423 に答える