2017-10-16 45 views
0

如何鏈接多個模型以在軌中呈現爲JSON對象。 目前我有像在軌道中呈現JSON時鏈接模型

render json: current_user.role.selected_bids.to_json(include: [:project => {include: [:milestones , :skill_category] } ]) 

我想在那裏我得到包括相關的模型要追加到此JSON對象另一個模型渲染聲明:里程碑。像這樣的東西

render json: current_user.role.selected_bids.to_json 
(include: [:project => {include: [:milestones=> {include: [:timetrackers]}, 
:skill_category]}]) 

但它拋出一個語法錯誤。是否可以做到這一級別的嵌套,或者我應該進行另一個API調用?

+0

你可以使用serialiser來構造json或基於視圖的解決方案,如jbuilder。 – Anton

+0

噢好吧,但是它不可能在這裏包含一個關聯嗎? – BigDaddy

+0

https://apidock.com/rails/ActiveRecord/Serialization/to_json檢出最後一個塊。 「二級和更高級的協會工作以及」 – Anton

回答

1

您收到語法錯誤的原因是因爲您正嘗試使用您將用於創建Array的語法創建Hash。你可以這樣做:

render json: current_user.role.selected_bids.to_json(
    include: [ 
    project: { 
     include: [ 
     { 
      milestones: { 
      include: [:timetrackers] 
      }, 
     }, 
     :skill_category 
     ] 
    } 
    ] 
) 
+0

注意我是如何將'milestones'鍵包裹在大括號內以表示它是'Hash'。 – bitsapien