Итак, я пытаюсь выполнить alias_method: rescue_action_in_public в модуле, включенном в мой контроллер, когда возникает исключение, но я продолжаю получать« неопределенный метод `rescue_action_in_public» от FooController ».Rails 4, undefined method `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
получает вызов «из рельсов», когда возникает исключение, и поскольку я затем накладываю этот метод, вместо этого вызывается мой метод псевдонима, делая то, что я хочу добавить к этому процессу , а затем я говорю, чтобы он сделал rescue_action_in_public_without_some_extra_thing
, который затем был сфальсифицирован до исходного rescue_action_in_public
, поэтому процесс нативных рельсов затем должен продолжаться.
Что я делаю неправильно?