2017-05-29 52 views
1

我在嘗試渲染json中的多個嵌套對象時遇到了一些麻煩。Ruby on Rails 5.0.2 - 多個嵌套Json渲染

這裏是我的腳本

def getFullSale 
     sale = Sale.find(params[:id]) 
     render json: sale, include: [:discount_sale, :offer_sale, :mixed_payment, :product_sale => {:include => {:product_history => {include: :product}}}, :refunds => {include: :refund_products}] 
end 

這工作,直到:product_sale,但是任何事情之後被忽略。

我需要的是包括:product_sale和:退款與嵌套屬性。

謝謝!

回答

1

我已經成功地使其工作!

積分在Here

的解決方案是替代在包括所述陣列,並使其像一個對象。

def getFullSale 
    sale = Sale.find(params[:id]) 
    render json: sale, include: {discount_sale: {}, offer_sale: {}, mixed_payment: {}, :product_sale => {:include => {:product_history => {include: :product}}}, :refunds => {include: :refund_products}} 
end 

我不知道爲什麼發生這種情況,但現在正在工作! 實際上,將=>更改爲:並不是一個壞主意。

def getFullSale 
    sale = Sale.find(params[:id]) 
    render json: sale, include: {discount_sale: {}, offer_sale: {}, mixed_payment: {}, product_sale: {include: {product_history: {include: :product}}}, refunds: {include: :refund_products}} 
end 
0

也許這是一個愚蠢的觀察,但你嘗試改變你的=>:

json: sale, include: [:discount_sale, :offer_sale, :mixed_payment, :product_sale : {:include : {:product_history : {include: :product}}}, :refunds : {include: :refund_products}] 
+0

與 試過渲染JSON:銷售點,包括:[:discount_sale,:offer_sale,:mixed_pa​​yment,product_sale:{包括:{product_history:{包括:產品}}},退款:{包括:refund_products }] 但它是相同的響應=( –