1. ホーム
  2. ruby-on-rails

[解決済み] Railsで、ビューを使ってJSONをレンダリングするにはどうしたらいいですか?

2022-07-17 17:27:12

質問

usersコントローラで、showリクエストに対するjsonレスポンスを取得したい場合、views/users/ディレクトリにshow.jsonというファイルを作成し、users#showアクションが完了した後、そのファイルをレンダリングできれば良いと思います。

現在、あなたは以下のようなことを行う必要があります。

def show
  @user = User.find( params[:id] )
  respond_to do |format|
    format.html
    format.json{
      render :json => @user.to_json
    }
  end
end

しかし、このように自動的にレンダリングされるshow.jsonファイルを作れればいいんですけどね。

def show
  @user = User.find( params[:id] )
  respond_to do |format|
    format.html
    format.json
  end
end

これによって、私は大量の悲しみを救うことができ、コントローラでjsonをレンダリングするときに感じる恐ろしいほど汚い感覚を洗い流すことができるでしょう。

どのように解決するのですか?

以下のようなことを respond_to ブロックの中で

respond_to do |format|
    format.json 
    render :partial => "users/show.json"
end

でテンプレートをレンダリングします。 app/views/users/_show.json.erb .