保存记录时跳过轨道ActiveRecord验证

时间:2015-02-04 06:55:42

标签: ruby-on-rails ruby ruby-on-rails-4 activerecord

我的rails项目中有一个函数,我处理由于验证失败而未保存记录的情况。

begin
  raise unless profile.save
  rescue ActiveRecord::ActiveRecordError => e
    e.message = "Warning: Some validations failed. Force Saving"
    profile.save(:validate => false)
    puts e.message
  end 
end

在这里,要强制保存profile,我必须跳过所有验证。有没有办法跳过这里失败的特定验证?

2 个答案:

答案 0 :(得分:1)

希望这会对你有所帮助

class Profile < ActiveRecord::Base

  validate :method_1
  validate :method_2, :if => :do_validate?

  def do_validate?
    #return true or false based on scenerio
  end

end

您可以进行条件验证。

答案 1 :(得分:0)

您想要跳过哪个验证,如果您想要跳过创建方法validates_presence_of,那么只允许更新方法检查验证

validates_presence_of :on => :update

希望这会有所帮助