現有的問題已經讓我達到我想要的90%的方式,但有一個困難。Rails嵌套關聯。在渲染:json
我有一個CheckIns
模型,和一個Person
模型。 CheckIns
屬於People
。
在我的控制,我有這樣的代碼:
data = CheckIn.all
render json: { data: data }
對於每個CheckIn
,我想窩在它的相關Person
。過去StackOverflow的問題,建議我這樣做:
data = CheckIn.all
render json: data.to_json include: :person
但是,這使得它很難窩我的數據的包裝JSON對象裏面,就像我原來的,因爲to_json
創建一個字符串,而不是Hash
。
我想包裝JSON對象,以便我可以遵循標準化的JSON輸出,其中data
總是在data:
字段中,並且其他元數據可以附加到響應。
如何獲得to_json
的include:
標誌的效果,同時還保留包裝對象?特別是,對我來說這不是一個有效的答案,因爲它確實很難看:
data = CheckIn.all
render json: { data: JSON.parse data.to_json(include: :person) }
謝謝!希望在Rails中有這樣的慣用方法。
我強烈建議使用JBuilder或Rabl的,以您的格式JSON而不是.to_json。這兩個寶石都提供了更加明確的DSL來格式化您的JSON。 – 2014-11-04 20:36:43
jbuilder是你的朋友... – 2014-11-04 22:56:36
是的,我已經知道JBuilder了,但我特別想知道如果我沒有'to_json',我可以做這些東西a)沒有向我的項目引入視圖。如果它不可行,那很好,但我的迴應代是如此明確是很好的。 – 2014-11-05 00:47:38