繁体   English   中英

是否在事务开始之前在Rails ActiveRecord中运行了一个回调?

[英]is there a callback which runs just before the transaction begins in rails ActiveRecord?

我只想在新创建或更新模型级对象时对其进行操作。 例如,考虑有一个具有名称属性的测试表:

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”回调之前执行的回调吗?

您可以覆盖savesave! 有效注入代码的方法。 根据您要尝试执行的操作,还可能存在合适的initialize方法。 另外, before_validationvalidate之前运行,那么您需要多before_validation才能完全运行它?为什么?

您能否说说为什么要这样做? 听起来您可能有一个设计问题,并且您正试图找到一个技巧,而不是解决一个更基本的问题。

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

请参考这个答案

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM