2013-11-27 84 views
0

我有下面的類層次結構:嵌套JSON ActiveRecord的

class User < ActiveRecord::Base 
    has_many :projects 
end 

class Project < ActiveRecord::Base 
    belongs_to :user 
    has_many :project_personas 
    has_many :personas, through: :project_personas 
end 

class ProjectPersona < ActiveRecord::Base 
    belongs_to :project 
    belongs_to :persona 
end 

class Persona < ActiveRecord::Base 
end 

,我試圖讓用戶像一個JSON:

render json: @user.to_json(
    include: { 
    projects: { 
     include: :personas 
    } 
    }) 

什麼不實際工作。什麼是工作是:

render json: @user.to_json(
    include: { 
     projects: { 
      include: { 
       project_personas: { 
        include: :persona 
       } 
      } 
     } 
    }) 

但我不想有這個project_personas級別。 我該怎麼辦?

回答

0

哦,問題是微不足道的。我只需要包括項目。所以

User.includes(projects: :personas).find_by(guid: '...') 

然後我得到了包括角色的項目。

0

我想我明白你的問題,你是否能提供更多的信息?

你想要的對象及其JSON的關係?

@user = User.where(:人物=> '富') @ user.to_json

+0

是的,而是'User.where(:GUID => '12 -2-12' )'和得到的結果'用戶{項目:{角色:{persona1,...}}}' – squixy

+0

哪些呢在查詢該對象時在控制檯或瀏覽器中呈現的內容? – Dap