Ruby/ROR禁用方法

And*_*Gis 1 ruby methods ruby-on-rails

我的问题与ROR有关,但实际上我认为它更像是ruby语法.

在模型中有一个内置方法'save',它将模型保存到数据库中.我需要覆盖该方法,以做一些有关文件的额外工作.我用一个带有2个参数的新方法重载了该方法.我现在要做的是禁用原始的保存方法,所以我不会在意外的地方使用它.现在我设法通过使用alias_method来做到这一点.现在,在没有参数的情况下调用save方法后,只会向控制台输出一条消息.问题是这条消息可能会被忽视.

处理这个问题的最佳方法是什么?再见

Dan*_*ail 7

您最好的选择是在Ruby on Rails中使用before_saveafter_save回调.

您可以在这里阅读更多相关信息:http://guides.rubyonrails.org/active_record_validations_callbacks.html#callbacks-overview

  • 这是正确的方法.我想补充一点,如果`before_save`回调返回`false`,那么'save`将被避免. (3认同)