sum*_*man 3 ruby ruby-on-rails ruby-on-rails-3
我想覆盖一个ActiveRecord保存方法,以便从事务中带来一些东西.覆盖方法是个好主意吗?
在大多数情况下,答案是否定的,因为你应该使用许多回调:before_save,after_save,before_create和after_create.所有这些回调都将记录保存(或记录已保存)作为参数,因此您可以随意执行任何操作.更重要的是,如果这些回调中的任何一个引发异常或返回false,则整个事务将被回滚.
但是:这是红宝石!这意味着如果你真的需要,你可以做任何你想做的事.如果回调由于某种原因不适合您,请继续并覆盖它.覆盖它的理由的好例子是添加额外的参数(不是真的推荐可能破坏其他方法)或者如果需要那些额外的选项(这是非常整洁!)
| 归档时间: |
|
| 查看次数: |
1252 次 |
| 最近记录: |