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"}]}

 

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です