我有一个rails4应用程序安装的导轨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
我还将GEM actionpack-action_caching
版本1.0.0
包括在我的Gemspec
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
我已经尝试更改一堆事情,例如将此块添加到to_prepare
和initializer
块中的engine.rb
。
ActiveSupport.on_load :action_controller do
require 'action_controller/action_caching'
end
我还尝试过在engine.rb
中设置config.action_caching = true
。
我敢肯定我缺少一些非常基本的东西,只是找不到什么!
edit1
也尝试在应用程序中添加caches_action
以进行操作。它引发了相同的错误。
要调试我在gem
在此行require 'action_controller/action_caching'
上,它在服务器启动时打印true
。
那更令人困惑!
我刚刚升级到最新的1.1.1版本的ActionPack-Action_caching,它解决了问题。
感谢安德鲁·怀特(Andrew White)对我在github上提出的问题做出了回应。