質問: @hoge.... respond_to do |format| format.html format.json {render :json => @foo } end end ```
回答: まず**基本的には**1回のリクエストに対しては1回の応答しか出来ません。 1. HTMLページのリクエストに対して `@foo` を作成してHTMLを応答(index) 2. ブラウザが ajax を使って JSON を要求しそれを応答(index とは別の物である必要があります) という2回のリクエストおよびレスポンスが必要です。例えばここにある様に、エンドポイントは2つ必要です。 どうしても * HTML でも @foo の中身を表示したい * JSON でも @foo を返したい という事であれば、この2回のリクエストに対して @foo を作る処理を1回にする為に揮発性のキャッシュを使うのが良いと思います。一定時間だけメモリに保持するといった物です。 もしくは HTML も @foo の中身を表示するのであれば、ajax をやめてしまうのも一つの方法です。