RefineryCMS の PagesController を拡張して、プロジェクトでいくつかの apotomo ウィジェットを使用したいと考えています。
PagesController の「オーバーライド」を実行してプロジェクトにコピーする可能性がありますが、PagesController を拡張する別のエンジンを使用しています (モジュール/モンキー パッチ アプローチを使用して show メソッドと home メソッドを変更します)。それ。
私の最初のアプローチは次のようなものでした:
config/application.rb:
config.before_initialize do
require 'pages_controller_extensions'
end
config.to_prepare do
PagesController.send :include, Refspike::Extensions
end
pages_controller_extensions で:
module Refspike
module Extensions
class << PagesController
include Apotomo::Rails::ControllerMethods
has_widgets do |root|
root << widget(:map)
end
end
end
end
残念ながら、これは apotomo の controller_methods の "helper ActionViewMethods" 行で爆発します。include Apotomo::Rails::ActionViewMethods を追加しても役に立ちませんでした。
Rails の依存関係の管理や、Ruby のオープン クラスに関する基本的な詳細を理解しているだけだと思います。別のアプローチ、または私が見落としている単純なものはありますか?