jinのログ

忘れっぽい自分のためのログ

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