从belongs_to关联中跳过validates_presence_of

时间:2013-08-29 10:37:36

标签: ruby-on-rails

如果条件为真,我正在尝试跳过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调用

2 个答案:

答案 0 :(得分:0)

这个主题有一个Railscast。您还可以查看Rails Conditional Validation

根据上面的链接,你必须传递一个lambda,例如:

:if => lambda { |venue| venue.event.try(:event_type) == 2 }

答案 1 :(得分:0)

最后,我做了一些与this

非常相似的事情