Я хотел бы расширить PagesController от RefineryCMS для использования некоторых виджетов apotomo в нашем проекте.
Я мог бы потенциально сделать «переопределение» PagesController, которое копирует его в мой проект, но я использую другой движок, который расширяет PagesController (модифицируя методы show и home с использованием подхода к патчированию модулей / обезьян) I ' Я бы предпочел этого избежать.
Мой первоначальный подход был примерно таким:
в config / application.rb:
config.before_initialize do
require 'pages_controller_extensions'
end
config.to_prepare do
PagesController.send :include, Refspike::Extensions
end
In pages_controller_extensions:
module Refspike
module Extensions
class << PagesController
include Apotomo::Rails::ControllerMethods
has_widgets do |root|
root << widget(:map)
end
end
end
end
К сожалению, это взрывается в строке "helper ActionViewMethods" в controller_methods apotomo. Добавление include Apotomo :: Rails :: ActionViewMethods не помогло.
Полагаю, я просто получаю базовые сведения об управлении зависимостями rails или, возможно, неправильные открытые классы ruby. Есть ли альтернативный подход, или я упускаю что-то простое?