この質問は、SOで何度か尋ねられたことを知っていますが、別の方法で行うことに興味がありました。私の Ruby on Rails アプリでは、UsersController.rbコントローラーにlistというアクションがあります。このリストを 3 つの異なるものに対応させたい
- ページ自体。指定したユーザーのページ全体をレンダリングする
- 指定したページのユーザーの JSON リスト
- HTML としてフォーマットされた、指定しているページの行のみの部分的なビュー。
ユーザーのページ 1 を含むテーブルを含むフル ページ (ヘッダー、フッター、すべて) を想像してください。ページ 2 をクリックすると、同じコントローラ アクションに ajax リクエストを開始して、ページ 2 の html 行だけを取得したいと考えています。私はそれがこのように見えると想像します。
class UsersController < ApplicationController
def list
respond_to do |format|
format.html # RETURNS MY VIEW
format.json # RETURNS MY JSON LIST
format.partial_html # RETURNS MY PARTIAL HTML
end
end
end
RoRでこれを達成する方法はありますか? それとも、技術的に同じデータを返すためだけに、コントローラーで別のアクションを作成しなければならない運命にありますか?
独自の MIME タイプを指定して、これを実現できますか? パーシャルを XML の戻り型としてスネークする必要がありますか?