如果条件为真,我正在尝试跳过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
因此,如果来自Events模型的条件为真,我需要跳过Venues validates_presence_of
验证。因此,如果event_type
等于'1',则会忽略场地validates_presence_of
调用,但如果event_type
为'2',则仍会执行validates_presence_of
调用
答案 0 :(得分:0)
这个主题有一个Railscast。您还可以查看Rails Conditional Validation
根据上面的链接,你必须传递一个lambda,例如:
:if => lambda { |venue| venue.event.try(:event_type) == 2 }
答案 1 :(得分:0)
最后,我做了一些与this
非常相似的事情