6

我正在尝试升级到 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)

这是为什么?

  • 导轨 4.0.0.beta1
  • 红宝石 2.0.0
  • 规范 2.13.1
4

3 回答 3

13

由于缓存不再是核心的一部分,因此您需要在使用它的每个文件的顶部明确要求它:

require 'actionpack/action_caching'
于 2013-04-07T14:24:13.720 回答
3

问题出在 Rails 4 中,他们已将缓存部分提取到单独的 gem 中

如果您收到动作缓存错误,那么您需要在 gem 下面添加

gem 'actionpack-action_caching'

对于页面缓存必须添加

gem 'actionpack-page_caching'

我也玩过,然后我发现,没有添加 gem 来做同样的事情。

希望这会奏效。谢谢你。

于 2016-06-23T11:27:28.317 回答
0

我使用 rails 作为 APIrails new AppName --api 我通过添加使其工作

include ActionController::Caching

class ApplicationController < ActionController::API

于 2021-04-04T07:22:08.790 回答