【发布时间】:2014-02-15 00:51:18
【问题描述】:
我有一个 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
我尝试过更改很多内容,例如在 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。
这更莫名其妙!
【问题讨论】:
标签: ruby-on-rails ruby-on-rails-4 rails-engines actionpack action-caching