2012-03-05 19 views
5

Googleのボットが自分のコントローラーの1つにアクセスしようとすると、このエラーメッセージが表示されます。ActionView :: MissingTemplate:テンプレートがありません

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" 

問題は再現できないことです。 エラーは先週の121回発生しました(airbrakeによる)。

Hereはバックトレースです。私のアプリに存在述べ行のみである

行18は、このコードの一部であるsuper

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 

channels#show URLを訪問この

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

ように見える制御方法Googleボットのエラーが発生してもエラーは発生しません。

唯一失敗したURLは、{"action"=>"show", "id"=>"25-jönköping", "controller"=>"channels"}のような特殊な文字を含むものです。 ORIGINAL_FULLPATHの値は/channels/25-j%c3%b6nk%c3%b6pingに設定されています。

私はレール3.2.1を使用しています。

+0

どのURLが当てはまるのですか?そのURLを自分で開発してみてください。また、HTTPリファラーをチェックして、どのページから来ているのかを確認します。 – nicholaides

+0

@nicholaides私はすでに問題のURLにアクセスしようとしましたが、これは動作します。 – Oleander

+0

このアプリケーションのライブURLは何ですか? –

答えて

2

このエラーはRails 3アプリでも見られましたが、エラーの複製については同じボートに入っています。ログにMissing Templateエラーが表示されますが、手動でリクエストを試みると正常に動作します。

GoogleからのHTTPリクエストが、Railsが正しく処理しているmimeを設定していないと思われます。私が見つけた粗溶液は、ビューテンプレートのMIMEを削除することですので、

example/index.html.erb 

テンプレートは、すべてのパントマイムのために使用されますので、これは、欠落しているテンプレートのエラーを停止し、今

example/index.erb 

です。

+0

あなたは私の時間を節約しました! –

関連する問題