Ruby on Rails で、JSON データが返されたとします。
render :json => array_of_purchases
この array_of_purchases には多数の Purchase オブジェクトが含まれており、それぞれにproduct_id
. ここで、返された JSON にプロパティを追加して、各 Purchase オブジェクトにもその Product オブジェクト データが含まれるようにする場合は、次のようにします。
"product": { "id": 123, "name": "Chip Ahoy", image_file: "chip_ahoy.jpg", ... etc }
では、このコントローラー アクション内に新しいインスタンス変数を追加するにはどうすればよいでしょうか?
それは可能性があります
def get_data
# getting data ...
class Purchase
attr_accessor :product # adding an instance variable
end
array_of_purchases.each {|p| p.product = Product.find(p.product_id)}
render :json => array_of_purchases
end
ただし、このメソッド (コントローラー アクション) 内のクラスにインスタンス変数を追加しても機能しません。
更新:これは、1 つの注文に多くの購入があり、1 つの購入が製品と数量であると想定しています。(おそらく、一部のシステムはそれを注文明細と呼んでいますか?)