##今まで
partialでファイル指定
user_infos/show.json.jbuilder
json.user_info do
json.partial! 'user_infos/user_info', user_info: @user_info
end
user_infos/_user_info.json.jbuilder
json.extract! user_info, :id, :name
##これから
DBに直接紐付かないモデルクラスにActiveModel::Model
をinclude
する。
ActiveModel::Modelをincludeすると、以下のような機能を使えるようになります。
- モデル名の調査
- 変換
- 翻訳
- バリデーション
今回はActiveModel::Model
がモデル名の調査をしてくれるのでファイル名を指定しなくてもよくなる。
models/user_info.rb
class UserInfo
include ActiveModel::Model
...
end
user_infos/show.json.jbuilder
json.user_info do
json.partial! @user_info #省略できる
end
user_infos/_user_info.json.jbuilder
json.extract! user_info, :id, :name
##参考