gpt4 book ai didi

ruby-on-rails - 在 JBuilder 中生成嵌套的 JSON 数组

转载 作者:数据小太阳 更新时间:2023-10-29 06:57:28 24 4
gpt4 key购买 nike

我在 ruby​​ on rails 中有这个模型

分支模型:has_many :menus

class Branch < ActiveRecord::Base           
belongs_to :place
belongs_to :city
has_many :menus , dependent: :destroy
belongs_to :type_place
end

菜单模型:has_many :products

class Menu < ActiveRecord::Base
attr_accessible :description, :product_name, :price, :category_id, :menu_id
belongs_to :branch
has_many :products, dependent: :destroy
end

产品型号:

class Product < ActiveRecord::Base
belongs_to :menu
belongs_to :category
end

在 View 中使用以下代码:

if @condition
json.code :success
json.branch do
json.array!(@branches) do |json, branch|
json.(branch, :id, :branch_name, :barcode)
json.menu branch.menus, :id, :menu_name
end
end
else
json.code :error
json.message 'Mensaje de error'
end

获取:

{
"code": "success",
"branch": [
{
"id": 1,
"branch_name": "Sucursal 1",
"barcode": "zPOuByzEFe",
"menu": [
{
"id": 2,
"menu_name": "carta sucursal 1"
}
]
},
{
"id": 2,
"branch_name": "Sucursal Viña Centro",
"barcode": "RlwXjAVtfx",
"menu": [
{
"id": 1,
"menu_name": "carta viña centro"
},
{
"id": 5,
"menu_name": "carta viña centro vinos"
}
]
},
{
"id": 3,
"branch_name": "dddd",
"barcode": "eSbJqLbsyP",
"menu": [

]
}
]
}

但是当我得到每个菜单的产品时,我怀疑我需要迭代菜单,但我尝试了几种方法都没有成功。

最佳答案

我不确定您的产品可以具有哪些属性,但我会尝试类似的方法:

if @condition
json.code :success
json.array!(@branches) do |json, branch|
json.(branch, :id, :branch_name, :barcode)
json.menus branch.menus do |json,menue|
json.id menue.id
json.menu_name menue.menu_name
json.products menue.products do |json, product|
json.product_attribute_1 product.product_attribute_1
end
end
end
else
json.code :error
json.message 'Mensaje de error'
end

我也不太清楚为什么你会尝试将 @branches 嵌套在一个分支下,如下所示:

json.branch do
...
end

我刚刚删除了它。

关于ruby-on-rails - 在 JBuilder 中生成嵌套的 JSON 数组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20959757/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com