2012-03-05 15 views
5

Recibo este mensaje de error cuando un bot de Google intenta visitar uno de mis controladores.ActionView :: MissingTemplate: Plantilla faltante

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" 

El problema es que no puedo reproducirlo. El error ha ocurrido 121 veces la semana pasada (de acuerdo con airbrake).

Here es la traza inversa.

Fila 18, que es la única fila mencionado que existe en mi aplicación, es la parte super de este código

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 

El método controlador channels#show se parece a esto

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

en la siguiente URL que levantó el error para que el robot de Google no generara un error para mí.

La única URL que falla es la que contiene caracteres especiales como {"action"=>"show", "id"=>"25-jönköping", "controller"=>"channels"}. El valor ORIGINAL_FULLPATH se establece en /channels/25-j%c3%b6nk%c3%b6ping.

Estoy usando los carriles 3.2.1.

+0

¿Qué URL está golpeando? Intenta ir a esa URL tú mismo en desarrollo. Además, verifique la referencia de HTTP para ver de qué página proviene. – nicholaides

+0

@nicholaides Ya he intentado visitar la url en cuestión, que funciona. – Oleander

+0

¿Cuál es la URL en vivo para esta aplicación? –

Respuesta

2

He visto este error también en una aplicación de Rails 3 y he estado en el mismo barco para replicar el error. El registro tiene el error de plantilla faltante, pero cuando intento manualmente la solicitud, funciona bien.

Sospecho que la solicitud HTTP de Google no está configurando un mimo que Rails está procesando correctamente. La solución en bruto que he encontrado es para eliminar la vista de plantilla MIME, por lo

example/index.html.erb 

es ahora

example/index.erb 

Esto detiene el error Plantilla Missing, ya que la plantilla se utilizará para todos los mimos.

+0

¡Me salvaste horas! –

Cuestiones relacionadas