我将Rails 2.3应用程序移动到Rails 3。 该应用程序实际上工作得很好,但我有rake任务的问题。 看起来环境文件中的配置未正确初始化。 我得到的错误是:
rake aborted!
undefined method `cache_classes=' for #<Hash:0x3c3e850>
/var/www/apps/nzar3/config/environments/development.rb:9
.....
环境文件很干净,而且很有效。 这里是环境/ development.rb
config.cache_classes = false
config.whiny_nils = true
config.action_controller.consider_all_requests_local = true
config.action_view.debug_rjs = true
config.action_controller.perform_caching = false
config.active_support.deprecation = :log
config.action_dispatch.best_standards_support = :builtin
有任何线索吗?
答案 0 :(得分:1)
Rails3使用不同的语法来配置您的应用程序。
YourApp::Application.configure do
config.cache_classes = false
end
您是否通过运行rails /path/to/rails2/app
?
阅读tips about upgrading to Rails 3这篇好文章。
答案 1 :(得分:1)
我也有这个问题,它与正在安装的cache_fu插件有关。删除cache_fu使问题消失。
答案 2 :(得分:0)
完整配置文件
App::Application.configure do
config.cache_classes = false
config.whiny_nils = true
config.action_controller.consider_all_requests_local = true
config.action_view.debug_rjs = true
config.action_controller.perform_caching = false
config.active_support.deprecation = :log
config.action_dispatch.best_standards_support = :builtin
end
答案 3 :(得分:0)
我发现只有这个使用ActionView的rake任务不起作用
namespace :cached_assets do
desc "Regenerate aggregate/cached files"
task :regenerate => :environment do
include ActionView::Helpers::TagHelper
include ActionView::Helpers::UrlHelper
include ActionView::Helpers::AssetTagHelper
stylesheet_link_tag :all, :cache => 'a'
javascript_include_tag :defaults, :cache => 'b'
javascript_include_tag "c.js", :cache => 'c'
end
end
答案 4 :(得分:0)
这对我有用: 评论这部分
config.action_view.debug_rjs = true
来自environments/development.rb