spring of life

技術、ときどき日常のブログ(予定)

jbuilder の使い方

使い方、というか自分用にこういう時はどう書けばいいか、というのをメモしておく

まぁ、WebAPI で json を返す時もビューと同じように処理しようかな〜と考えてて、そういう風に実装したんだけど、

まだまだ慣れなくていろいろ調べながらやってしまって時間がかかったので残しとこうかな〜と。

普通にモデルのオブジェクトを json で返す時
json.(@object, :hoge, :fuga, :piyo) 
# これで {"hoge": xxx, "fuga": yyy, "piyo": zzz} の形式の json が返る
# hoge, fuga, piyo はモデルのインスタンス変数 @object の属性
モデルのオブジェクトの配列を json で返す時
json.array! @objects do |object|
  json.(object, :hoge, :fuga, :piyo)
end
# これで [{"hoge": xxx, "fuga": yyy, "piyo": zzz}, {"hoge": ... }] の形式の json が返る
# hoge, fuga, piyo はモデルのインスタンス変数 @object の属性
モデルとは関係のないオブジェクトを json で返す時
# @object = {"hoge" => xxx, "fuga": yyy, "piyo": zzz} の場合

@object.each do |key, value|
  json.set! key, value
end
# これで {"hoge": xxx, "fuga": yyy, "piyo": zzz} の形式の json が返る


2017/04/16 関連モデルの属性も同時に出力するパターンを追記
leonis.hatenablog.com