将参数传递给around_action会引发:LocalJumpError没有给出块(yield)

问题描述 投票:0回答:2

我想在这个around_action中包装我的行动:

around_action { do_stuff("foo") }

我的around_action看起来像这样:

def do_stuff(arg)
  some_block do
    Rails.logger.error "arg: #{arg}"
    yield
  end
end

但这引起了LocalJumpError no block given (yield)。我究竟做错了什么?

ruby-on-rails ruby-on-rails-5
2个回答
0
投票

我最终解决了它:

around_action -> (controller, block) { do_stuff("foo", block) }

def do_stuff(arg, block)
  some_block do
    Rails.logger.error "arg: #{arg}"
    block.call
  end
end
© www.soinside.com 2019 - 2024. All rights reserved.