- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我对 around_action 感到非常困惑。它们是如何工作的?有人可以向我提供他们如何工作的示例/解释吗?
这是我的敏捷 Web 开发 4 书中的引述:
Around callbacks wrap the execution of actions. You can write an around callback in two different styles. In the first, the callback is a single chunk of code. That code is called before the action is executed. If the callback code invokes yield, the action is executed. When the action completes, the callback code continues executing. Thus, the code before the yield is like a before action callback and the code after the yield is the after action callback. If the callback code never invokes yield. the action is not run-this is the same as having a before action callback return false.
class ChangesController < ApplicationController
around_action :wrap_in_transaction, only: :show
private
def wrap_in_transaction
ActiveRecord::Base.transaction do
begin
yield
ensure
raise ActiveRecord::Rollback
end
end
end
end
最佳答案
我的理解如下:
begin
# Do before action...
logger.info 'I am the before action'
# Do the action, which is passed as a block to your "around filter"
# Note that if you were to delete this line, the action will never be called!
yield
# Do after action...
logger.info 'I am the after action'
ensure
raise ActiveRecord::Rollback
end
关于ruby-on-rails - around_action 回调如何工作?需要解释,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27932270/
ApplicationController::Base中的around_action是否包含before_action和after_action?我知道 around_action 环绕指定的 Act
我刚刚发现了 around_action 回调。我真的不明白这些回调是如何与其他回调一起工作的,尤其是与使用 (append_)before_action 相比调用堆栈的样子。或 prepend_be
我对 around_action 感到非常困惑。它们是如何工作的?有人可以向我提供他们如何工作的示例/解释吗? 这是我的敏捷 Web 开发 4 书中的引述: Around callbacks wrap
我有这个, class SiteMailer lorem ipsum ! lorem ipsum ! 型号 site.rb class Site < ApplicationRecord .....
为了显着减少代码重复,我想写一个关于向 Controller 添加特殊 around_action 的通用方法的问题。它基本上应该捕获任何异常,呈现正确的模板并将异常添加为通知。但是,它必须适用于不同
在 Rails 应用程序中,当前区域设置是通过 around_action 回调在 ApplicationController 中设置的。与仅使用 before_action 相比,这是一个更简洁的解
我有一个带有多个 namespace 的 rails 应用程序,例如用户、管理、管理员。这意味着我有 current_user、current_management、current_admin。 我应
我想创建一个模块,当包含该模块时,它使每个事件记录查询都作为我将包装的 block 执行。 具体来说,我正在使用 https://github.com/zendesk/active_record_sh
我正在为我的 customer_mailer 类构建一个 around_action,这样我就不必每次都在 begin and rescue 周围包装调用deliver_now class Custo
我正在渲染一个 js.erb 部分,它使 ajax 功能可以喜欢/不喜欢餐厅菜肴。我最近遇到了 around_action回调和计算 yield将有助于首先执行 Controller 操作,然后再渲染
我是一名优秀的程序员,十分优秀!