jbuilder
#JSONシリアライザ #JSON
https://github.com/rails/jbuilder
Rails に同梱されている Gem
DSL で JSON 形式のデータを作成することができる
【Rails】JSON形式のデータを返却する方法とは? | Pikawaka - ピカ1わかりやすいプログラミング用語サイト
【Rails】jbuilderの使い方辞典〜メソッドの文法と使い方がす | Pikawaka - ピカ1わかりやすいプログラミング用語サイト
Railsのjbuilderの書き方と便利なイディオムやメソッド - Qiita
インスタンス変数を使うときは、jbuilder のファイル名をアクション名.json.jbuilderとする
scaffold で作られる jbuilder ファイル
パーシャル
code:app/views/books/_book.json.jbuilder
json.extract! book, :id, :title, :description, :created_at, :updated_at
json.url book_url(book, format: :json)
index
indexアクションの@booksの要素を1つずつbookとしてパーシャルbooks/_book.json.jbuilderに渡す
code:app/views/books/index.json.jbuilder
json.array! @books, partial: "books/book", as: :book
code:http://localhost:3000/books.json
[{"id":1,"title":"Ruby text","description":"わかりやすい。","created_at":"2020-12-12T07:26:08.893Z","updated_at":"2020-12-12T07:26:08.893Z","url":"http://localhost:3000/books/1.json"},{"id":2,"title":"Webを支える技術","description":"いい本。","created_at":"2020-12-12T12:51:09.401Z","updated_at":"2020-12-12T12:51:09.401Z","url":"http://localhost:3000/books/2.json"}]
show
code:app/views/books/show.json.jbuilder
json.partial! "books/book", book: @book
code:http://localhost:3000/books/1.json
{"id":1,"title":"Ruby text","description":"わかりやすい。","created_at":"2020-12-12T07:26:08.893Z","updated_at":"2020-12-12T07:26:08.893Z","url":"http://localhost:3000/books/1.json"}