【发布时间】:2013-04-07 13:33:42
【问题描述】:
我正在尝试升级到 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)
这是为什么呢?
- Rails 4.0.0.beta1
- Ruby 2.0.0
- Rspec 2.13.1
【问题讨论】:
-
只是出于好奇,您在使用
caches_action之前是否require 'actionpack-action_caching'? -
我刚试过
gem 'actionpack-action_caching', github: 'rails/actionpack-action_caching', require: "actionpack-action_caching",结果是cannot load such file -- actionpack-action_caching (LoadError) -
哎呀,对不起。我看了一下代码,你需要
require actionpack/action_caching而不是require 'actionpack-action_caching'(斜线而不是减号。)由于缓存不再是核心的一部分,你需要在每个文件的顶部显式地require它你用它。 -
将
require "actionpack/action_caching"添加到application.rb有效。把它写成下面的答案,我会接受的。谢谢。 -
我遇到了这个问题,建议的解决方案没有解决它。有人吗?
标签: ruby-on-rails ruby ruby-on-rails-4 ruby-2.0