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

Viewed 11554

For some reason, I get the "undefined method `page_cache_extension' for ActionController::Base:Class" error when I run my application.

The weird thing is that it seems to happen only on the first start after I boot my machine up and start the server. If I refresh page - it loads fine. If I restart my server - it works fine too.

I use rails 3.0.9 with ruby 1.9.2 on windows7 and I think it started happenning after I upgraded to 3.0.7. At least, with 3.0.3 I didn't get this.

Here's the trace:

[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'
7 Answers

I got this error after I added haml to my Gemfile. It appeared to be a bug in a rails update for rails 3.1

Updating rails to 3.2.2 and haml to 3.1.4 fixed the problem. More info about the bug can be found here.

Related