JSON出力について。
jbuilderを使う。
- ルーティング(config/routes.rb)
get ‘show’ => ‘sessions#show’
- コントローラー(app/controllers/sessions_controller.rb)
class SessionsController < ApplicationController
protect_from_forgery with: :null_session
def show
@status =’ok’
@users = User.all
render “show”, :formats => [:json], :handlers => [:jbuilder]
end
※ @変数はtemplateに引き継がれる。
- viewテンプレート(views/sessions/show.json.jbuilder)
json.status @status
json.users do
json.array!(@users) do |u|
json.name u.name
end
end
- 結果
{"status":"ok","users":[{"username":"admin"},{"username":"mknod"}]}