2013-04-07 20 views
5

Sto provando ad eseguire l'aggiornamento ai binari 4 beta 1, ma ho un po' di problemi.metodo non definito `caches_action 'per ApplicationController: Classe

Questo è, in breve, l'aspetto del controller dell'applicazione.

class ApplicationController < ApplicationController 
    caches_action :method 
end 

caches_action viene spostato fuori di essa la propria gemma in Rails 4, in modo tra cui la gemma dovrebbe risolvere il problema.

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

Ma quando eseguo le mie richieste specifiche o visitare l'applicazione in un browser ottengo questo errore.

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

Perché è quello?

  • Rails 4.0.0.beta1
  • Rubino 2.0.0
  • Rspec 2.13.1
+0

Solo per curiosità, hai richiesto 'actionpack-action_caching'' prima di usare 'caches_action'? – mudasobwa

+0

Ho appena provato 'gem 'actionpack-action_caching', github: 'rails/actionpack-action_caching', richiede:" actionpack-action_caching "', che ha avuto come risultato 'impossibile caricare tale file - actionpack-action_caching (LoadError)' – Oleander

+0

Oooups , scusa. Ho dato un'occhiata al codice, è necessario 'require actionpack/action_caching' piuttosto che' require 'actionpack-action_caching'' (barra invece di meno). Dato che la cache non fa più parte del core, è necessario esplicitamente ' lo si richiede in tutti i file in cui lo si utilizza. – mudasobwa

risposta

11

Poiché la memorizzazione nella cache non è una parte del nucleo più, è necessario richiedono esplicitamente in cima a ogni file che si usa in:

require 'actionpack/action_caching' 
+0

Questa risposta al problema suggerisce che non dovresti richiederlo esplicitamente: https://github.com/rails/actionpack-action_caching/pull/11 –

2

parte della cache Il problema è in Rails 4, hanno estratto in gemme separati

se hai trovato l'errore per l'azione di caching, allora avete bisogno di aggiungere sotto gemma

gem 'actionpack-action_caching' 

per la pagina di cache deve aggiungere

gem 'actionpack-page_caching' 

Ho anche suonato in giro, allora immagino che, hanno non ha aggiunto gem per fare lo stesso.

speranza che funzioni. Grazie.

Problemi correlati