2015-04-23 61 views
3

我使用主動模型序列化器爲我的API。 我有一個模型(任務),有許多子任務(總是任務模型),稱爲子。 我做這個遞歸的has_many協會感謝祖先寶石(https://github.com/stefankroes/ancestry序列化JSON關聯模型的兒童

它的工作原理都不夠好,但我有這樣的問題: 任務與用戶的關聯,但在主動模式,串行,導出用戶的主對象,它也不顯示所有孩子的用戶細節。 這是我的串行:

class TaskSerializer < ActiveModel::Serializer 
    attributes :id, :name, :details, :user_id 

    belongs_to :user 
    has_many :children 

end 

這是我的控制器:

class Api::V1::TasksController < Api::V1::BaseController 
    respond_to :json 

    def index 
    @tasks = current_user.company.tasks 
    respond_with @tasks, location: nil 
    end 
end 

這是我的模型:

class Task < ActiveRecord::Base 
    has_ancestry 

    belongs_to :user 
end 

我也試着這樣做在我的模型:

class Api::V1::TasksController < Api::V1::BaseController 
    respond_to :json 

    def index 
    @tasks = current_user.company.tasks 
    render json: @tasks, 
      each_serializer: TaskSerializer, 
      status: :ok 

    end 
end 

但是沒有工作...我有父對象的用戶詳細信息,但不是爲孩子們(他只向我顯示user_id,沒有所有用戶對象)

有什麼建議嗎?

回答

2

您是否曾嘗試爲Children模型添加序列化程序或將它們作爲顯式屬性來查詢?

class TaskSerializer < ActiveModel::Serializer 
    attributes :id, :name, :details, :user_id, :children 

    def children 
    object.children 
    end  
end