我的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
,我必须跳过所有验证。有没有办法跳过这里失败的特定验证?
答案 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
希望这会有所帮助