我正在尝试升级到rails 4 beta 1,但我有点问题。
简而言之,这就是我的应用程序控制器的样子。
class ApplicationController < ApplicationController
caches_action :method
end
caches_action
在Rails 4中移出了它自己的gem,所以包括gem应该解决问题。
gem "actionpack-action_caching", github: "rails/actionpack-action_caching"
但是当我运行我的请求规范或在浏览器中访问该应用程序时,我收到此错误。
app/controllers/application_controller.rb:3:in `<class:ApplicationController>': undefined method `caches_action' for ApplicationController:Class (NoMethodError)
为什么?
答案 0 :(得分:11)
由于缓存不再是核心的一部分,因此您需要在您使用它的每个文件的顶部明确要求它:
require 'actionpack/action_caching'
答案 1 :(得分:2)
问题出在Rails 4中,他们将缓存部分提取到单独的宝石中
如果您收到操作缓存错误,则需要添加以下gem
gem 'actionpack-action_caching'
页面缓存的必须添加
gem 'actionpack-page_caching'
我也玩过,然后我发现,没有添加宝石来做同样的事情。
希望这会奏效。谢谢。
答案 2 :(得分:0)
我使用 Rails 作为 API rails new AppName --api
我通过添加使其工作
include ActionController::Caching
在class ApplicationController < ActionController::API