【发布时间】:2014-11-26 10:04:03
【问题描述】:
因此,当引发异常时,我尝试在包含在我的控制器中的模块中对 :rescue_action_in_public 执行 alias_method,但我不断收到“来自 FooController 的未定义方法 `rescue_action_in_public'”。
这是我的模块:
module DoSomethingToExceptions
extend ActiveSupport::Concern
included do
alias_method :rescue_action_in_public_with_some_extra_thing, :rescue_action_in_public
alias_method :rescue_action_in_public, :rescue_action_in_public_without_some_extra_thing
end
def rescue_action_in_public_with_some_extra_thing
do_something
rescue_action_in_public_without_some_extra_thing
end
end
为了测试这一点,我的控制器中有一个before_filter,它调用一个只执行raise 'FooException' 的方法,只是为了调用rescue_action_in_public。除此之外,包括这个模块,这就是相关的控制器代码。
我真的试图了解这应该如何工作。我认为这可行的方式是,当引发异常时,rescue_action_in_public 被称为“来自 rails”,并且由于我随后为此方法设置别名,因此调用我的别名方法,执行我想要添加的任何操作该过程,然后我告诉它执行rescue_action_in_public_without_some_extra_thing,然后将其别名为原始rescue_action_in_public,因此本机rails进程应该继续进行。
我做错了什么?
【问题讨论】:
标签: ruby-on-rails exception undefined rescue