Подтвердить что ты не робот

Undefined метод `page_cache_extension 'для ActionController:: Base: Class

По какой-то причине я получаю метод undefined `page_cache_extension 'для ActionController:: Base: Class" при запуске моего приложения.

Странно, что это происходит только при первом запуске после того, как я загружу свою машину и запустил сервер. Если я обновляю страницу - она ​​загружается нормально. Если я перезапущу свой сервер, он тоже отлично работает.

Я использую рельсы 3.0.9 с ruby ​​1.9.2 на windows7, и я думаю, что это началось после того, как я обновил до 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'
4b9b3361

Ответ 1

Я удалил следующие строки из development.rb

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

Не уверен, что это правильно, но это сработало для меня.

Ответ 2

Я экспериментировал с той же проблемой после обновления ОС. Если настройка была выполнена с использованием RVM, используйте только следующую команду:

rvm repair all

Ответ 3

Я получил эту ошибку после добавления haml в свой Gemfile. Он оказался ошибкой в ​​обновлении рельсов для рельсов 3.1

Обновление рельсов до 3.2.2 и haml до 3.1.4 устраняет проблему. Более подробная информация об ошибке может быть найдена здесь.

Ответ 4

У меня была такая же проблема, и я обнаружил, что база данных на сервере не содержит данных - мое восстановление завершилось неудачно, поскольку я забыл создать роль входа, требуемую db. Как только я правильно восстановил db из резервной копии, рельсы работали безупречно.

Я не уверен, что вы в подобной ситуации, но я думал, что дам вам знать, как я решил это на всякий случай, когда вы в той же лодке, в которой я был:) Удачи!

Ответ 5

удалите эту строку в development.rb для меня.

config.action_view.debug_rjs = true

Сообщение

undefined метод `page_cache_extension 'для ActionController:: Base: Class

не является основной причиной проблемы, но последнее сообщение об ошибке показано

После проверки журнала я вижу еще одну ошибку

[2012-04-28 21:37:59] ERROR NoMethodError: undefined метод `debug_rjs = 'для ActionView:: Base: Class

и в соответствии с здесь

debug_rj удаляется. Поэтому удаление его из config помогло

Примечание:

Как и в здесь, по-прежнему предлагается добавить в README...

Другой поток в отношении этой же проблемы

Ответ 6

Я прокомментировал обе строки в своем развитии. rb

#config.action_view.debug_rjs             = true

#config.action_controller.perform_caching = false

но проблема все еще была. Я только что упал и воссоздал свою базу данных, поэтому я подумал, что, возможно, это недостаток данных, как указано выше. После создания записи я был все еще без успеха. Наконец, я сделал полный перезапуск, в моем случае....

sudo shutdown -r now

Теперь я смог запускать свои приложения для рельсов. Хотя это и не твердое исправление, это может помочь.

После запуска моего приложения rails я заметил, что не все мои изменения для недавнего притяжения появлялись? Я заметил, что я изменил файл .js в файл .js.erb. Когда я выполнил свою фиксацию, я использовал git add. Это оставило оба файла. Я вернулся и выпустил git add -u. Я сделал еще одну фиксацию, предварительно скомпилировал и перезапустил... теперь все мои изменения есть, и ошибка исчезла. Кажется, что example.js в том же каталоге, что и example.js.erb, вызывают проблему. Хотя перезагрузка, возможно, помогла, я считаю, что эти файлы могли быть причиной. Надеюсь, это поможет.

Ответ 7

Ran в эту проблему, но не нашел ни одной из строк

config.action_view.debug_rjs = true

или

config.action_controller.perform_caching = false

в development.rb.

Вместо этого я прокомментирую

config.cache_classes = false

который был около вершины моего development.rb, и он работал. Я работаю с OpenShift сгенерированным Rails 4, так что это может быть причиной отсутствия вышеуказанных строк. Или, возможно, они устарели, поскольку вопрос был изначально задан/решен, поэтому это может помочь кому-то новому в этом вопросе.