【Rails】respond_toを利用してformatごとに、htmlとjsonを出し分ける方法
やること
respond_toを使って、formatによってjsonやhtml,xmlなどの形式を出し分ける
ver
- ruby 2.5.1
- Rails 6.0.3
実装
users_controller
class UsersController < ApplicationController
def show
respond_to do |format|
format.html
format.json { render json: User.first }
end
end
end
結果
htmlフォーマットでエンドポイントにアクセス
localhost:3000/users/1
にアクセス
→htmlが表示される
jsonフォーマットでエンドポイントにアクセス
localhost:3000/users/1.json
にアクセス
→json形式でresponseを得られる
所感
webアプリケーションはhtmlで表示し、ネイティブアプリからのアクセスではjsonを返すなどの実装に使えそうですね!