簡體   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