在表单提交上,如果验证失败,我想将关联属性设置为nil。在rails中有一个简单的方法吗?我认为存在一种方法,但我找不到方法。
答案 0 :(得分:0)
您可以执行after_validation回调...
class Model < ActiveRecord::Base
after_validation :set_failed_attributes_to_nil
def set_failed_attributes_to_nil
errors.messages.each { |k, _| write_attribute(k, nil) }
end
end
答案 1 :(得分:0)
after_validation :remove_bad_attributes
def remove_bad_attributes
if errors.any?
errors.keys.each do |err|
assign_attributes(err => nil)
end
end
end
以上对我来说很好。