我有一个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中包含了gem actionpack-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
。
我确定我遗漏了一些非常基本的东西,但却无法找到答案!
EDIT1
尝试在应用程序中为操作添加caches_action
。它会抛出相同的错误。
要调试我在gem
在此行require 'action_controller/action_caching'
上,并在服务器启动时打印true
。
太令人困惑了!
答案 0 :(得分:0)
我刚刚升级到最新的1.1.1版本的actionpack-action_caching,它解决了这个问题。
感谢Andrew White回答我在Github提出的问题。