Railsのjbuilderの代表的な書き方
1. 単純なキーと値
code: (rb)
json.{key} {value}
例) userオブジェクトのid、nameを含むjsonの作成
code: (rb)
json.id user.id
json.name user.name
code: (json)
{ "id": 1, "name": "Alice" }
2. extract!
オブジェクトから一括でカラムの値を展開
code: (rb)
json.extract! {object}, :{column_1}, :{column_2}, ...
# シンタックスシュガー(*で配列を展開)
columns = columns_1, columns_2
json.({object}. *columns)
例) userオブジェクトからid、nameを含むjsonの作成
code: (rb)
json.extract! user, :id, :name
or
columns = id, name
json.(user *columns)
code: (json)
{ "id": 1, "name": "Alice" }
3. 配列を展開
配列オブジェクトを展開してjsonを作成
例) users配列からuserごとにid、nameを含むjsonの作成
code: (rb)
json.users = []
@users.each do |user|
json.users << { id: user.id, name: user.name }
end
code: (json)
[
{id: 1, name: "Alice"},
{id: 2, name: "Bob"}
]
array! を使うのが一般的
4. array!
jsonを配列として作成
code: (rb)
json.array! {object} :{column_1}, :{column_2}, ...
例) users配列からuserごとにid、nameを含むjsonを作成
code: (rb)
json.array! @users :id, :name
code: (json)
[
{id: 1, name: "Alice"},
{id: 2, name: "Bob"}
]
5. partial
jsonの作成に別のpartialで生成したjsonを利用する
code: (rb)
json.{キー} {値}, partial: "{partialへのパス}", as: :{partialに渡す変数}
例) userキーの値をuserのpartialで生成したjsonを利用する
code: (rb)
json.user @user, partial: "users/user", as: :user
code: (rb)
# users/userのpartial
json.id user.id
json.name user.name
code: (json)
{ "id": 1, "name": "Alice" }
https://github.com/rails/jbuilder
https://pikawaka.com/rails/jbuilder
#Rails
#JSON