ruby-on-rails - rail:如何知道模型中 after_xxx 中的哪个动作

我的模型中有这段代码

after_create :publish_properties
after_update :publish_properties
before_destroy :publish_properties

publish_properties 内部,我怎么知道哪个是动作 (update, create or delete) ?

回答1

您可以使用回调块语法 (https://guides.rubyonrails.org/active_record_callbacks.html#callback-registration) 以像这样的操作类型显式调用您的回调

after_create { publish_properties :create }
...

def publish_properties(action_type)
 ...
end

回答2

我想你想要 transaction_include_any_action。您可以通过在函数中使用以下代码来获取操作名称来执行此操作

导轨 4+

self.transaction_include_any_action?([:<action_name>])

导轨 < 4

self.transaction_include_action?([:<action_name>])

在此操作中,名称可以是 :create、:destroy、:commit 等。

相似文章

python - Web scraping 尝试创建请求时出错

我正在尝试从电影网站上抓取一些数据(每个页面有20条记录)。我做的主要步骤是:创建请求从网络上获取响应下载看来我在第1步中有一些错误,但我真的不知道如何解决。每个页面的网址就像https://movi...