2012-03-05 7 views
5

Ricevo questo messaggio di errore quando un bot di Google tenta di visitare uno dei miei controller.ActionView :: MissingTemplate: modello mancante

ActionView::MissingTemplate: Missing template channels/show, application/show with {:locale=>[:"sv-SE", :en], :formats=>["*/*;q=0.9"], :handlers=>[:erb, :builder, :haml]}. Searched in: * "/opt/www/app/releases/20120228181534/app/views" * "/opt/www/app/shared/bundle/ruby/1.9.1/gems/kaminari-0.13.0/app/views" 

Il problema è che non riesco a riprodurlo. L'errore si è verificato 121 volte l'ultima settimana (in base allo airbrake).

Here è il backtrace.

Row 18, che è l'unica fila detto che esiste nella mia app, è la parte super di questo codice

def render(options = {}, extra_options = {}, &block) 
    if request.headers['X-PJAX'] or params[:no_layout] == "true" or params[:_pjax] 
    options[:layout] = false 
    end 
    super(options, extra_options, &block) 
end 

Il metodo di controllo channels#show assomiglia a questo

def show 
    @channel = # ... 
    @today  = # ... 
    @yesterday = # ... 
    @tomorrow = # ... 
end 

visitando l'URL che ha sollevato l'errore per il bot di google non genera un errore per me.

L'unico URL che non riesce è quello che contiene caratteri speciali come {"action"=>"show", "id"=>"25-jönköping", "controller"=>"channels"}. Il valore ORIGINAL_FULLPATH è impostato su /channels/25-j%c3%b6nk%c3%b6ping.

Uso le guide 3.2.1.

+0

Quale URL sta colpendo? Prova ad andare a quell'URL te stesso in fase di sviluppo. Inoltre, controlla il referrer HTTP per vedere da quale pagina proviene. – nicholaides

+0

@nicholaides Ho già provato a visitare l'url in questione, che funziona. – Oleander

+0

Qual è l'URL live per questa applicazione? –

risposta

2

Ho visto questo errore anche su un'app Rails 3 e sono stato nella stessa barca per replicare l'errore. Il log presenta l'errore Modello mancante, ma quando provo manualmente la richiesta, funziona correttamente.

Sospetto che la richiesta HTTP di Google non stia impostando un mimo che Rails sta elaborando correttamente. La soluzione grezza che ho trovato è quello di rimuovere la vista modello di mimo, così

example/index.html.erb 

è ora

example/index.erb 

Ciò arresta l'errore Template mancante, dal momento che il modello verrà utilizzato per tutti i mimi.

+0

Mi hai salvato ore! –

Problemi correlati