2010-12-16 7 views
1

私はコントローラを持っていますが、FirefoxではすべてのアクションがIE8でレンダリングされず、Chromerは正常に動作します。問題はこのコントローラーだけであり、私は別のものがOKです。RAILS:Internet Explorer 8でアクションがレンダリングされず、代わりにポップアップをダウンロード

コードは次のとおりです。

class CustomersController < ApplicationController 
auto_complete_for :customers, :name 

def search 
    unless params[:q].nil? 
    @customers = Customer.find(:all, :conditions => ['name LIKE ?', 
     "%#{params[:q]}%"]) 
    end 

    respond_to do |format| 
    format.xml { render :xml => @customers} 
    format.json { render :json => @customers} 
    end 

end 

def index 
    @customers = Customer.find_index 
end 

def show 
    @customer = Customer.find(params[:id]) 
end 

たとえばindexアクションをレンダリングし、代わりにIE8は、ダウンロードダイアログを表示するが、私はこのようなindexアクションを編集した場合に取得されていません。

def index 
    @customers = Customer.find_index // a find all but ordered. 
    respond_to do |format| 
    format.html 
    end 
end 

どれでもアイデアは何が起こっている?

UPDATE:あなたのすべての利害のために
は、問題は、テンプレートファイル名でした。 「customers.html.erb」のようなファイルが「text/html」として返送されている間に、「invoice.erb」のような名前を持つすべてのファイルがコンテンツ「text/erb」としてブラウザに返送されました。 すべてのファイルの名前を "html.erb"に変更すると、すべて正常に動作します。

+0

ちょうど不思議なことに、なぜこのエンドポイントをブラウザで打つのですか? xmlとjsonだけを返すエンドポイントは、通常、AJAXによって呼び出されます。あなたがそれらが動作することを確認するためにそれらをテストしようとしているなら、あなたはそれのためのテストを書くべきです。 – Samo

+0

@サモ:あなたは検索方法について話していますか?もしそうなら、あなたは言ったように、私はそれをajaxメソッドとブラウザを使ってテストするためだけに使っています。 – pbruna

+0

ああ、私は誤解して申し訳ありません、あなたは明示的にhtmlをレンダリングしない限り、アクションのどれもIE8で正しくレンダリングされていないと言っています。私の間違い。 – Samo

答えて

1

ie8はxmlやjsonの処理方法がわかりませんが、htmlの処理方法はわかります。ブラウザに実際にxmlを表示させたい場合は、ブロックに:content_type => 'text/plain'を追加して、それに応答する方法を知ることができます。

+0

ie8からそれを呼んでいないとしても、それが問題の原因となっている検索方法であることを意味していますか? – pbruna

+0

ブラウザーで検索方法をレンダリングするには、ブラウザーで何をすべきかを知っているコンテンツタイプを指定するか、何かをレンダリングできるようにHTMLブロックを指定する必要があります。アプリケーション/ xmlで何をすべきか分からないため、IEが保存ダイアログをポップしています – dstarh

関連する問題