モデルのインスタンスを Serializer に与えて to_json するだけで良さげ
Serializer
class UserSerializer < ActiveModel::Serializer
attributes :id, :name
end
動作
空のインスタンス
user = User.new
# <User:0x000055cfd1dcf6f8
# id: nil,
# name: nil,
# email: nil,
# created_at: nil,
# updated_at: nil>
serialized_user = UserSerializer.new(user)
serialized_user.to_json
# => "{\"id\":null,\"name\":null}"
DBからインスタンスを得る例
user = User.last
# #<User:0x000055cfd1ea0730
# id: 19,
# name: "吾輩",
# created_at: Fri, 20 Mar 2020 01:02:10 UTC +00:00,
# updated_at: Fri, 20 Mar 2020 01:02:10 UTC +00:00>
serialized_user = UserSerializer.new(user)
serialized_user.to_json
# => => "{\"id\":19,\"name\":\"吾輩\"}"
Original by Github issue
チャットメンバー募集
何か質問、悩み事、相談などあればLINEオープンチャットもご利用ください。