私はRails4アプリを持っており、Rails 4エンジンMyEngine
がコントローラーにマウントされていますMyController
次のように、キャッシュ用のコントローラーで複数のアクションを定義しました。
module MyEngine
require 'actionpack/action_caching'
class MyController < ApplicationController #inherits from application controller of app
[:index, :show].each do |action|
caches_action action
end
end
end
gemspecに gemactionpack-action_caching
バージョンも含めました1.0.0
spec.add_dependency "actionpack-action_caching", "1.0.0"
を指すルートをヒットしようとするMyController
と、次のエラーが発生します。
ActionController::RoutingError - undefined method `caches_action' for MyEngine::MyController:Class:
私は開発環境を使用しているため、環境の構成も変更してキャッシュを有効にしました。
config.action_controller.perform_caching = true
engine.rb
このブロックをインto_prepare
とブロックに追加するなど、さまざまなことを変更しようとしましたinitializer
。
ActiveSupport.on_load :action_controller do
require 'action_controller/action_caching'
end
にも設定config.action_caching = true
してみましたengine.rb
。
私は何かを見つけることができないだけで、非常に基本的なものを見逃していると確信しています!
編集1
caches_action
アプリケーション内のアクションにも追加してみました。同じエラーがスローされます。
デバッグするために、いくつかの印刷ステートメントを内部に追加しましたgem
この行で、サーバーの起動時require 'action_controller/action_caching'
に出力されます。true
それはもっと不可解です!