0

私は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

それはもっと不可解です!

4

1 に答える 1

0

actionpack-action_caching の最新バージョン 1.1.1 にアップグレードしたところ、問題が解決しました。

私がGithubで提起した問題に対応してくれた Andrew White に感謝します。

于 2014-01-24T10:24:52.780 に答える