2013-04-07 15 views
5

Próbuję uaktualnić do rails 4 beta 1, ale mam mały problem.niezdefiniowana metoda "caches_action" dla ApplicationController: Class

Krótko mówiąc, wygląda jak mój kontroler aplikacji.

class ApplicationController < ApplicationController 
    caches_action :method 
end 

caches_action się wyprowadziła do własnej klejnot w Rails 4, więc w tym klejnotu powinno rozwiązać problem.

gem "actionpack-action_caching", github: "rails/actionpack-action_caching" 

Ale kiedy uruchamiam specyfikacje zapytań lub odwiedzam aplikację w przeglądarce, pojawia się ten błąd.

app/controllers/application_controller.rb:3:in `<class:ApplicationController>': undefined method `caches_action' for ApplicationController:Class (NoMethodError) 

Dlaczego tak jest?

  • Szyny 4.0.0.beta1
  • Ruby 2.0.0
  • rspec 2.13.1
+0

Po prostu z ciekawości, czy "wymagałeś" actionpack-action_caching'' przed użyciem 'cache_action'? – mudasobwa

+0

Po prostu wypróbowałem 'gem 'actionpack-action_caching', github: 'rails/actionpack-action_caching', wymaga:" actionpack-action_caching "', co spowodowało 'nie może załadować takiego pliku - actionpack-action_caching (LoadError)' – Oleander

+0

Oooups przepraszam. Rzuciłem okiem na kod, musisz 'wymagać actionpack/action_caching' zamiast' require 'actionpack-action_caching'' (slash zamiast minus). Ponieważ buforowanie nie jest już częścią rdzenia, musisz jawnie " wymagają 'go na górze każdego pliku, w którym go używasz. – mudasobwa

Odpowiedz

11

Jak buforowanie nie jest częścią rdzenia już, trzeba wyraźnie wymagają go w top każdego pliku go używać w:

require 'actionpack/action_caching' 
+0

Ta odpowiedź na problem sugeruje, że nie musisz wymagać tego wyraźnie: https://github.com/rails/actionpack-action_caching/pull/11 –

2

problem jest w Rails 4, one zostały wyodrębnione części cache na oddzielne klejnotów

jeśli otrzymujesz błąd dla buforowania akcji to trzeba dodać poniżej gem

gem 'actionpack-action_caching' 

na buforowanie stron trzeba dodać

gem 'actionpack-page_caching' 

ja też bawił się wtedy zorientować się, że mają nie dodano klejnotu, aby zrobić to samo.

nadzieję, że zadziała. Dziękuję Ci.

Powiązane problemy