如何在保存失败后以及在将其渲染到视图之前访问模型的属性?我想更改它们,因为它们是在模型中修改的
答案 0 :(得分:0)
您可以使用以下方法将对象的属性重置为其原始值:
product.changes.each {|key,value| product.send("#{key}=", value.first)}
答案 1 :(得分:0)
最好的方法是从数据库重新加载:
product.reload
这将拉出之前已保存的内容并丢弃任何未保存的更改。
如果要在操作前对模型进行快照:
before_attributes = product.attributes
# ... Stuff that goes horribly wrong
product.attributes = before_attributes
这会将任何基本属性恢复到之前的状态。