保存失败后Rails访问属性

时间:2014-10-18 16:40:17

标签: ruby-on-rails

如何在保存失败后以及在将其渲染到视图之前访问模型的属性?我想更改它们,因为它们是在模型中修改的

2 个答案:

答案 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

这会将任何基本属性恢复到之前的状态。