什么时候在Rails中调用validate方法?

时间:2016-06-23 08:36:59

标签: ruby-on-rails validation

我有一个模型StudentProductRelationship。我正在添加自定义验证器

validate :validate_primary_product , :if => "!primary_product"

方法是

def validate_primary_tag 
  unless StudentProductRelationship.exists?(:primary_product => true, :student_id => student_id)
    errors.add(:base,"There is no primary product associated to product")
  else
  end
end

primary_product是一个布尔字段。我想验证primary_product至少有一个真student_id的存在。问题是如果我有一个StudentProductRelationship对象说sprprimary_product = true。如果我做spr.update_attributes(primary_product: false)。验证不会引发错误,因为StudentProductRelationship.exists?(:primary_product => true, :student_id => student_id)存在beacuse spr仍存在于带primary_product = true的数据库中。我如何超越这个?

1 个答案:

答案 0 :(得分:0)

tvm.Task.Instructed不适用于你吗?