27 votes

méthode non définie `page_cache_extension 'pour ActionController :: Base: Class

Pour une raison quelconque, j'ai le "undefined method `page_cache_extension" pour ActionController::Base:Classe d'erreur" quand je lance mon application.

La chose étrange est qu'il semble se produire uniquement sur le premier démarrage, après je démarre ma machine et démarrer le serveur. Si j'ai actualiser la page - il charge très bien. Si je redémarre mon serveur, il fonctionne très bien aussi.

J'utilise rails 3.0.9 avec ruby 1.9.2 sur windows7 et je pense que cela a commencé passe après que j'ai mis à niveau vers 3.0.7. Au moins, avec 3.0.3 je n'ai pas eu le.

Voici la 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'

15voto

seanyboy Points 3170

J'ai supprimé les lignes suivantes de development.rb

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

Je ne sais pas si c'est vrai, mais cela a fonctionné pour moi.

11voto

zetoufouwak Points 111

J'ai expérimenté le même problème après la mise à niveau de mon système d'exploitation. Si la configuration a été effectuée à l'aide de RVM, utilisez uniquement la commande suivante:

 rvm repair all
 

3voto

Evgenia Manolova Points 441

J'ai eu cette erreur après avoir ajouté du haml à mon Gemfile. Cela semblait être un bug dans une mise à jour de rails pour rails 3.1

La mise à jour de rails vers 3.2.2 et de haml vers 3.1.4 a résolu le problème. Plus d'informations sur le bug peuvent être trouvées ici .

1voto

Mike Points 3295

Juste eu le même problème, et j'ai trouvé que la base de données sur le serveur ne contenait aucune donnée - ma restauration avait échoué car j'ai oublié de créer un rôle de connexion requis par la base de données. Dès que j'ai correctement restauré la base de données à partir de la sauvegarde, les rails ont fonctionné parfaitement.

Je ne sais pas si vous êtes dans une situation similaire, mais j'ai pensé que je vous ferais savoir comment je l'ai résolu juste au cas où vous seriez dans le même bateau que moi :) Bonne chance!

1voto

vincentlcy Points 166

supprimer cette ligne dans le développement.rb pour moi travaillé

config.action_view.debug_rjs = true

Le message

undefined method `page_cache_extension " pour ActionController::Base:Classe

n'est pas la cause racine du problème, mais le dernier message d'erreur affiché

Après avoir vérifié le journal, je peux voir une autre erreur

[2012-04-28 21:37:59] ERREUR NoMethodError: undefined method `debug_rjs=' pour ActionView::Base:Classe

et selon ici

debug_rj est supprimé. Par conséquent, la suppression de config aidé

Note:

Comme ici, il est toujours suggéré d'ajouter dans le fichier lisez-moi...

Un autre Thread concernant cette même question

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X