2011-06-28 32 views
28

出于某种原因,当我运行我的应用程序时,出现“ActionController :: Base:Class”的“未定义的方法`page_cache_extension'错误。ActionController :: Base的undefined方法`page_cache_extension':类

奇怪的是,它似乎只发生在我启动我的机器并启动服务器后的第一次启动。如果我刷新页面 - 它加载正常。如果我重新启动我的服务器 - 它也可以正常工作。

我在windows7上使用rails 3.0.9和ruby 1.9.2,我认为它在我升级到3.0.7后开始发生。至少,3.0.3我没有得到这个。

这里的痕迹:

[2011-06-28 15:16:39] INFO WEBrick 1.3.1 
[2011-06-28 15:16:39] INFO ruby 1.9.2 (2011-02-18) [i386-mingw32] 
[2011-06-28 15:16:39] INFO WEBrick::HTTPServer#start: pid=5292 port=3000 
[2011-06-28 15:27:18] ERROR NoMethodError: undefined method `page_cache_extension' for ActionController::Base:Class 
    D:/dev/Ruby192/lib/ruby/gems/1.9.1/gems/actionpack-3.0.9/lib/action_dispatch/middleware/static.rb:21:in `call' 
    D:/dev/Ruby192/lib/ruby/gems/1.9.1/gems/railties-3.0.9/lib/rails/application.rb:168:in `call' 
    D:/dev/Ruby192/lib/ruby/gems/1.9.1/gems/railties-3.0.9/lib/rails/application.rb:77:in `method_missing' 
    D:/dev/Ruby192/lib/ruby/gems/1.9.1/gems/railties-3.0.9/lib/rails/rack/log_tailer.rb:14:in `call' 
    D:/dev/Ruby192/lib/ruby/gems/1.9.1/gems/rack-1.2.3/lib/rack/content_length.rb:13:in `call' 
    D:/dev/Ruby192/lib/ruby/gems/1.9.1/gems/rack-1.2.3/lib/rack/handler/webrick.rb:52:in `service' 
    D:/dev/Ruby192/lib/ruby/1.9.1/webrick/httpserver.rb:111:in `service' 
    D:/dev/Ruby192/lib/ruby/1.9.1/webrick/httpserver.rb:70:in `run' 
    D:/dev/Ruby192/lib/ruby/1.9.1/webrick/server.rb:183:in `block in start_thread' 
Started GET "/" for 127.0.0.1 at 2011-06-28 15:27:21 +0400 
    Processing by GamesController#index as HTML 
    Category Load (2.0ms) SELECT "categories".* FROM "categories" 
    Game Load (17.0ms) SELECT "games".* FROM "games" WHERE "games"."approved" = 't' AND "games"."published" = 't' ORDER BY approved_at DESC LIMIT 3 

... 

Rendered games/_game.haml (7.0ms) 
Rendered games/index.haml within layouts/application (574.0ms) 
Completed 200 OK in 638ms (Views: 586.0ms | ActiveRecord: 28.0ms) 
[2011-06-28 15:27:23] ERROR Errno::ECONNABORTED: ��������� �� ����� ����-���������� ��������� ������������� �����������. 
    D:/dev/Ruby192/lib/ruby/1.9.1/webrick/httpresponse.rb:323:in `write' 
    D:/dev/Ruby192/lib/ruby/1.9.1/webrick/httpresponse.rb:323:in `<<' 
    D:/dev/Ruby192/lib/ruby/1.9.1/webrick/httpresponse.rb:323:in `_write_data' 
    D:/dev/Ruby192/lib/ruby/1.9.1/webrick/httpresponse.rb:295:in `send_body_string' 
    D:/dev/Ruby192/lib/ruby/1.9.1/webrick/httpresponse.rb:186:in `send_body' 
    D:/dev/Ruby192/lib/ruby/1.9.1/webrick/httpresponse.rb:103:in `send_response' 
    D:/dev/Ruby192/lib/ruby/1.9.1/webrick/httpserver.rb:86:in `run' 
    D:/dev/Ruby192/lib/ruby/1.9.1/webrick/server.rb:183:in `block in start_thread' 

回答

1

刚刚有同样的问题,我发现服务器上的数据库中,它没有数据 - 我的恢复失败了,因为我忘记了创建所要求登录的角色分贝。只要我正确地从备份恢复数据库,轨道工作完美无瑕。

我不确定你是否处于类似的情况,但我想我会让你知道我是如何解决它,以防万一你在同一条船上我在:)祝你好运!

16

我删除以下行从development.rb

config.action_view.debug_rjs    = true 
config.action_controller.perform_caching = false 

不知道这是正确的,但它为我工作。

+0

我也一样 –

+0

我只需要注释掉这行:'config.action_controller.perform_caching = false' – RNickMcCandless

+0

遇到这个问题时升级旧的rails应用程序 – eggie5

3

我在将haml添加到我的Gemfile后出现此错误。它似乎是一个轨道更新导轨3.1中的错误

更新rails到3.2.2和haml到3.1.4修复了这个问题。有关该错误的更多信息可以是found here

1

删除此行中development.rb为我工作

config.action_view.debug_rjs = true

消息

undefined method `page_cache_extension' for ActionController::Base:Class

不是问题的根本原因,但最后的错误信息中显示

后检查日志,我可以看到另一个错误

[2012-04-28 21:37:59] ERROR NoMethodError: undefined method `debug_rjs=' for ActionView::Base:Class

并根据here

debug_rj被删除。因此,从配置中移除帮助

注:

正如here它仍然建议自述添加...

Another Thread对于同样的问题

0

我评论两条线出来在我的发展.rb

#config.action_view.debug_rjs    = true 

#config.action_controller.perform_caching = false 

但问题仍然存在。我刚刚删除并重新创建了我的数据库,所以我想可能是因为缺乏上述的数据。创建一个记录后,我仍然没有成功。最后,我做了一个完整的重新启动,在我的情况....

sudo shutdown -r now 

我现在可以运行我的rails应用程序了。虽然不是一个可靠的解决方案,但它可能有一些帮助。

在开始我的Rails应用程序时,我注意到并非我最近的拉动所有变化都显示出来了吗?我注意到我已将.js文件更改为.js.erb文件。当我做了我的提交我使用git add。这留下了两个文件。我回去并发布git add -u我做了另一个提交,预编译并重新启动...现在我所有的更改都在那里,错误消失了。在与example.js.erb相同的目录中看到example.js导致该问题。虽然重启可能有帮助,但我相信这些文件可能是原因。希望这个对你有帮助。

11

升级我的操作系统后,我尝试了同样的问题。 如果安装使用RVM做,只使用下面的命令:

rvm repair all 
0

就遇到了这个问题,但没有发现任何

config.action_view.debug_rjs = true 

config.action_controller.perform_caching = false 

在线路development.rb。

相反,我注释掉

config.cache_classes = false 

这是靠近我development.rb的顶部和它的工作。我正在使用一个OpenShift生成的Rails 4应用程序,这可能是缺少上述行的原因。或者,也许他们已经被弃用,因为问题最初被问及/解决,所以这可能会帮助新的问题。

相关问题