6

Railsアプリのいくつかのリソースにコンテンツネゴシエーションを実装しようとしています。私はMootoolsを使用しており、XMLHTTPRequestによって受け入れられるコンテンツタイプを「application/json」に微調整できる可能性があります。

コントローラでこの情報を取得し、XHTMLの代わりにJSON応答を生成する方法はありますか?

私は次のようなことを避けようとしています:

http://site/resource/1?format=JSON

...それは私のURLを汚すので、ある程度の冗長性を課し、それほど柔軟ではありません。

ありがとう!

4

4 に答える 4

9

http://site/resource/1.jsonは、コンテンツネゴシエーションの正しい使用法ではありません。重要なのは、URLは同じままである必要がありますが、クライアントは、要求とともに送信するHTTPヘッダーに基づいて特定の表現(JSON、PDF、HTMLなど)を要求します。

于 2010-10-02T18:16:51.250 に答える
4

respond_to次のように、コントローラーメソッドでスタンザを使用できます。

respond_to do |format|
  format.html { # Generate an HTML response... }
  format.json { # Generate a JSON response... }
end

Railsは、クライアントから送信されたHTTPAcceptヘッダーの値に基づいて応答形式を決定します。

于 2009-07-04T16:47:26.547 に答える
1

確かにhttp://site/resource/1.jsonは機能するはずですか?Rails環境でセットアップする必要があるかもしれませんが、使用しているRailsのバージョンによっては、疑わしいと思います。

于 2009-07-04T17:13:16.200 に答える
0

多くの調査の結果、railsには出力用のテンプレートを自動的に選択するためのすべてがありますが、サポートしたいテンプレートごとにresponse_toを呼び出す必要があります。

于 2009-07-14T00:42:03.253 に答える