Включение методов в контроллер из плагина

Используя Rails 2.3.11 , я создаю плагин для Redmine, который добавляет методы - ApplicationController .

Я создал в плагине следующий модуль:

module ApplicationControllerPatch
  def self.included(base) # :nodoc:
    base.class_eval do
      rescue_from AnException, :with => :rescue_method

      def rescue_method(exception)
        ...
      end
    end
  end
end

Теперь, если я включу этот модуль непосредственно в файл application_controller.rb , например:

class ApplicationController < ActionController::Base
  include ApplicationControllerPatch

  ...
end

Все работает нормально, однако я хотел бы избежать редактирования основного источника, включив этот модуль из самого плагина. Пока, если я это сделаю:

ApplicationController.send(:include, ApplicationControllerPatch)

непосредственно из этого файла модуля (находящегося в плагине) папка). Это будет правильно загружаться для запроса, а затем он будет перезаписан контроллером (я думаю).

Как это сделать?

5
задан Holger Just 29 October 2011 в 15:02
поделиться