0

我有一个 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.rbinto_prepareinitializerblock 中。

ActiveSupport.on_load :action_controller do
    require 'action_controller/action_caching'
end

我也试过设置config.action_caching = trueengine.rb

我确定我错过了一些非常基本的东西,只是无法找出什么!

编辑1

也尝试caches_action在应用程序中添加操作。它抛出相同的错误。

为了调试,我在里面添加了一些打印语句gem

在这一行require 'action_controller/action_caching',它true在服务器启动时打印。

那就更莫名其妙了!

4

1 回答 1

0

我刚刚升级到最新的 1.1.1 版本的 actionpack-action_caching,它解决了这个问题。

感谢 Andrew White 回应了我在Github上提出的问题。

于 2014-01-24T10:24:52.780 回答