1

before_filterリクエストとパラメーターのさまざまな側面に応じて、レスポンスタイプをデフォルトにしたいがあります。例えば、

request.format = ( params.format ||= 'html' ) if ...    # an HTML-only request/client
request.format = ( params.format ||= 'json' ) if request.xhr?

respond_to do |format|; format.html { ... }; format.json { ... }クライアントの条件に応じて が適切にレンダリングされるという考えです。一部のクライアントはタイプとして入ってきて*/*(おそらくこれはrequest.content_type?)、これらを強制的に HTML 応答にしたいと考えています。ただし、機能していないようです。各ルートのデフォルトタイプを設定せずに、これを行うためのクリーンな方法は何ですか? respond_toつまり、応答タイプを要求に挿入して、それに応じてスイッチを入れたいだけです。

4

1 に答える 1

1

request.format=タイプのオブジェクトである必要がありますMIME::Type

だからあなたは次のようなことをしなければならないでしょうrequest.format = MIME::Types.type_for('html').first

于 2012-07-03T22:27:49.590 に答える