2011-06-28 8 views
28

Por alguna razón, obtengo el error" método indefinido `page_cache_extension' para ActionController :: Base: Class" cuando ejecuto mi aplicación.método indefinido `page_cache_extension 'para ActionController :: Base: Class

Lo raro es que parece suceder solo en la primera vez que inicio mi computadora y arranco el servidor. Si actualizo la página, se carga bien. Si reinicio mi servidor, también funciona bien.

Uso los rieles 3.0.9 con ruby ​​1.9.2 en windows7 y creo que comenzó a suceder después de que actualicé a 3.0.7. Al menos, con 3.0.3 no entendí esto.

Aquí es la traza:

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

Respuesta

1

Sólo tenían el mismo problema, y ​​me encontré con que la base de datos en el servidor no tenía datos en él - Mi restaurar habían fracasado como olvidé para crear una función de inicio de sesión requerida por el db. Tan pronto como restauré correctamente el db de la copia de seguridad, los rieles funcionaron sin problemas.

No estoy seguro si estás en una situación similar, pero pensé que te dejaría saber cómo lo resolví en caso de que estés en el mismo barco en el que estuve :) ¡Buena suerte!

16

Me retiran las siguientes líneas de development.rb

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

No estoy seguro si esto es correcto, pero funcionó para mí.

+0

yo también lo mismo –

+0

Todo lo que tenía que hacer era comentar solo esta línea: 'config.action_controller.perform_caching = false' – RNickMcCandless

+0

se encontró con esto mientras actualizaba una aplicación antigua de rieles – eggie5

3

Recibí este error después de agregar haml a mi Gemfile. Parecía ser un error en una actualización de rieles para raíles 3.1

La actualización de rails a 3.2.2 y haml a 3.1.4 solucionó el problema. Más información sobre el error puede ser found here.

1

Poner esta línea en development.rb trabajó para mí

config.action_view.debug_rjs = true

El mensaje

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

no es la causa raíz del problema, pero el último mensaje de error se muestra

Después revisando el registro, puedo ver otro error

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

y según here

debug_rj se ha eliminado. Por lo tanto sacarlo de config ayudó

Nota:

Como en here todavía se sugiere que se añade en el README ...

Another Thread con respecto a este mismo problema

0

comenté a cabo ambas líneas en mi desarrollo.rb

#config.action_view.debug_rjs    = true 

#config.action_controller.perform_caching = false 

pero el problema todavía estaba allí.Acababa de soltar y recrear mi base de datos, así que pensé que tal vez era la falta de datos como se indicó anteriormente. Después de crear un registro, todavía no tuve éxito. Finalmente, hice un reinicio completo, en mi caso ....

sudo shutdown -r now 

Ahora podía ejecutar mis aplicaciones de rieles ahora. Aunque no es una solución sólida, puede ser de alguna ayuda.

Al iniciar mi aplicación de rieles, noté que no estaban apareciendo todos mis cambios para la extracción reciente? Noté que había cambiado un archivo .js a un archivo .js.erb. Cuando hice mi compromiso usé git add. Esto dejó ambos archivos. Volví y emití git add -u Hice otra confirmación, precompiled y reinicie ... ahora todos mis cambios están allí y el error se ha ido. Parece que example.js en el mismo directorio que example.js.erb causaba el problema. Aunque el reinicio puede haber ayudado, creo que estos archivos pueden haber sido la causa. Espero que esto sea de alguna ayuda.

11

Experimenté el mismo problema después de actualizar mi sistema operativo. Si la configuración se realiza mediante RVM, sólo se utiliza el siguiente comando:

rvm repair all 
0

encontré con este problema, pero no encontraron ninguna de las líneas

config.action_view.debug_rjs = true 

o

config.action_controller.perform_caching = false 

en desarrollo.rb.

lugar comento hacia fuera

config.cache_classes = false 

que estaba cerca de la parte superior de mi development.rb y funcionó. Estoy trabajando con una aplicación Rails 4 generada por OpenShift, por lo que podría ser la razón de la ausencia de las líneas anteriores. O tal vez han quedado en desuso debido a que la pregunta fue inicialmente hecha/resuelta, por lo que esto podría ayudar a alguien nuevo en el tema.

Cuestiones relacionadas