Railsで関連するモデルをto_jsonで指定して出力
忘れっぽいのでメモ。
to_jsonのオプションで関連するモデルを指定してやればよい。
また、:onlyで指定したフィールドのみ取得してくれる。
便利。
model側
class Consultant::History < ActiveRecord::Base belongs_to :consultant
controller側
class Consultant::HistoryController < ApplicationController def all render :layout => false, :json => @history.to_json(:include => {:consultant => {:only => :name}}) end
出力結果はこんな感じ
historyにリレーション張ってる
consultantも一緒に取得している。
{ "id":1, "consultant_id":1, "consultant":{ "name":"hoge" } }
to_jsonのオプションについて
to_json (ActiveRecord::Serialization) - APIdock
http://apidock.com/rails/ActiveRecord/Serialization/to_json