gpt4 book ai didi

ruby-on-rails - Rails around_action 包括之前和之后的回调?

转载 作者:行者123 更新时间:2023-12-05 03:13:43 25 4
gpt4 key购买 nike

ApplicationController::Base中的around_action是否包含before_actionafter_action?我知道 around_action 环绕指定的 Action ,但想知道它是否也环绕与该 Action 关联的回调之前和之后。

例如,让我们看一下根据 Rails 文档修改的代码:

class ChangesController < ApplicationController
before_action :some_callback, only: show
around_action :wrap_in_transaction, only: :show

...

private

def wrap_in_transaction
yield unless true
end
end

some_callback 会被执行吗?

最佳答案

是的,some_callback 将被执行。这些方法彼此完全不知情,并将按照它们编写的顺序执行。

您可能会对 Rails 用于执行此操作的代码感兴趣。您可以在 https://github.com/rails/rails/blob/cdaab2c479c819b04cc72a97c52b804832365cef/actionpack/lib/abstract_controller/callbacks.rb#L180 找到它.您会注意到它们都调用了 _insert_callbacks 方法 ( https://github.com/rails/rails/blob/cdaab2c479c819b04cc72a97c52b804832365cef/actionpack/lib/abstract_controller/callbacks.rb#L87 )。

此外,为什么不使用控制台输出或其他方式尝试呢?这种类型的事情应该很容易通过快速试验来验证(我怀疑这就是这个问题被否决的原因)。

关于ruby-on-rails - Rails around_action 包括之前和之后的回调?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29248709/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com