0

我只想在新创建或更新模型级对象时对其进行操作。例如,假设有一个带有 name 属性的测试表:

class Test < ActiveRecord::Base
  custom_callback :hi
  def hi
    name = "h"
  end
end
m = Test.new(:name => "hello")
m.save

我只想编写一个自定义回调,它应该在 before_validation 之前执行,并且应该在保存或保存时执行!叫做。理想情况下,我希望在 rails 2.3 中有一些回调,它应该被执行并挂接到 ActiveRecord::Base。是否有任何宝石可以做到这一点,或者有人知道如何编写一个在“before_validation”回调之前执行的回调吗?

4

2 回答 2

1

您可以覆盖saveandsave!方法来有效地注入代码。initialize根据您要执行的操作,还有可能适合的方法。此外,before_validation运行 before validate,那么您需要提前多长时间才能准确运行,为什么?

你能多说一下你为什么要这样做吗?听起来您可能遇到了设计问题,并且您正在尝试寻找破解方法,而不是解决更基本的问题。

于 2013-04-12T20:11:41.977 回答
-1

看来您正在寻找 before_save,它在验证后运行:http: //api.rubyonrails.org/classes/ActiveRecord/Callbacks.html

请参考这个答案

于 2013-04-12T20:39:11.850 回答