我有一个 Rails4 应用程序,一个MyEngine
带有控制器的安装 rails 4 引擎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
into_prepare
和initializer
block 中。
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
在服务器启动时打印。
那就更莫名其妙了!