在 JBuilder 中生成嵌套 JSON 数组

2023-11-23

我在 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:产品

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

在视图中使用以下代码:

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

gets:

{
 "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

我刚刚删除了它。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

在 JBuilder 中生成嵌套 JSON 数组 的相关文章

  • 使用 Ruby 通过 Outlook 发送消息的最简单方法是什么?

    我的工作要求我为某些测试自动生成电子邮件 我一直在四处寻找 但一直未能找到可以快速实施的合理解决方案 它需要在 Outlook 中 而不是其他邮件服务器中 因为我们有一些奇怪的身份验证规则 并且我们需要保存草稿的选项 而不仅仅是发送消息 显
  • 将 json 反序列化为对象:包装类解决方法

    这是我的 json accessType Grant spaces spaceId 5c209ba0 e24d 450d 8f23 44a99e6ae415 privilegeId db7cd037 6503 4dbf 8566 2cca4
  • 使用 Rails 中的 postgres json 字段更新嵌套键

    我一直在尝试更新以下内容 boxes book 2 moving 2 goods to boxes book new 2 moving 2 goods 无需使用正则表达式或在 ruby 中执行此操作 但似乎有点棘手 我想添加新密钥 然后删除
  • 后退按钮 (Chrome) 在 Play Framework 中获取 Json 而不是 HTML

    各位 我有一个 Web 应用程序 我在其中对同一资源的 JSON 和 HTML 表示重复使用了相同的路由 现在我们将其称为 foo details 该页面是从 bar details 链接的 因此 查看 bar details 您会看到链接
  • Rails:验证字符串的最小和最大长度,但允许其为空白

    我有一个想要验证的字段 我希望该字段能够留空 但如果用户输入数据 我希望它采用某种格式 目前我在模型中使用以下验证 但这不允许用户将其留空 validates length of foo maximum gt 5 validates len
  • 如何在保存父对象时确保子对象有效?

    假设我有两堂课 class User attr accessible name has one address validates name presence gt true validates associated address end
  • mysql_query 保留返回时在表中创建的数据类型?

    我在mysql中有一个表 CREATE TABLE user id INT name VARCHAR 250 我查询表 result mysql query SELECT id name FROM user 我收集结果 while row
  • 如何获取所有mysql元组结果并转换为json

    我能够从表中获取单个数据 但是当我试图获取表上的所有数据时 我只得到一行 cnn execute sql rows cnn fetchall column t 0 for t in cnn description for row in ro
  • 使用 System.Text.Json 序列化记录成员

    我在记录中使用自我引用成员 如下所示 type Payload Id Guid member x DerivedProperty Derived Property using id x Id NewtonSoft Json会序列化这个 但是
  • 通过 JSONP 通过 CDN 传输静态 JSON 文件

    我有大量 JSON 格式的静态 很少变化的数据 为了提高我的 ASP NET MVC 应用程序性能 我想将它们移动到 CDN Amazon Cloud Front 然而 当我这样做时 跨域策略启动 jQuery 进行 HTTP OPTION
  • Capistrano 部署擦除数据库?

    我已成功使用 Capistrano 将我的应用程序部署到生产环境 但我不明白如何处理我的数据库 我正在使用颠覆和乘客 当我运行 cap 部署时 新部署会重新启动一切 它会清除添加到数据库中的数据 显然 必须有一个解决方案 但我很惊讶没有在网
  • 如何解决“找不到密钥::密码”?

    I m very铁轨已经生锈了 我认为自从我使用它以来的七年里 发生了很多变化 我正在尝试设置这个示例应用程序 https iridakos com news 2015 06 21 rails sample api ui https iri
  • postgres 数组字段上的 ActiveAdmin 过滤器

    我在 ActiveAdmin 中添加了以下过滤器 filter roles as select collection Model ROLES multiple true 但是当我选择过滤器值来搜索角色时 它给了我以下错误 PG Invali
  • PostgreSQL安装错误——无法分配内存

    我正在尝试从 sqlite3 切换到 PostgreSQL 以在 Rails 中进行开发 这样我就不会遇到任何 heroku 问题 我遵循了heroku和链接到的Railscast上给出的建议 但是在brew安装postgresql后遇到了
  • Sass::SyntaxError:找不到或无法读取要导入的文件:bootstrap-sprockets

    我在开发和生产部署中突然遇到此错误 自定义 css scss import bootstrap sprockets import bootstrap 错误 生产中 rake aborted Sass SyntaxError File to
  • 实体创建无用的 id 字段

    我有一个CrudRepository与两个实体 Problem 特征实体总是创建一个附加的id数据库中的字段但未选择正确的characteristic id要生成的字段JSON machine entity machine id name
  • 检索 Steam 市场上物品的价格历史记录

    关于 Steam 市场上的物品 我想知道是否有办法检索某物品在一段时间内的价格历史记录 我知道 Steam 为想要将市场特定数据集成到自己网站中的开发人员提供了一个特殊的 api 但我还没有找到任何有关以 json 形式检索商品价格历史记录
  • 多步ActiveRecord的模型验证

    考虑具有以下字段的用户模型 名字 必填 姓氏 必填 电子邮件 必填 要求输入密码 电话 必填 大小 10 位数字 地址 必填 以及包含以下步骤的多步骤注册表单 第一步 包含 名字 姓氏 和 电子邮件 字段 第二步输入密码 电话和地址 您将如
  • 解码Json数据数组并插入到mysql

    这个问题可能已经在这里问过 但我尝试搜索找不到它 我有如下 Json 数据 CityInfo CityCode 5599 Name DRUSKININKAI CityCode 2003 Name KAUNAS CityCode 2573 N
  • PySpark - RDD 到 JSON

    我有一个 Hive 查询返回以下格式的数据 ip category score 1 2 3 4 X 5 10 10 10 10 A 2 1 2 3 4 Y 2 12 12 12 12 G 10 1 2 3 4 Z 9 10 10 10 10

随机推荐

  • R,将变量传递给系统命令

    我希望使用 R 创建一个 QR 代码并将其嵌入到 Excel 电子表格 数百个代码和电子表格 中 显而易见的方法似乎是使用命令行创建二维码 并在 R 中使用 system 命令 有谁知道如何通过 system 命令传递 R 变量 谷歌不太有
  • 有没有办法使用 pandas.ExcelWriter 自动调整 Excel 列宽?

    我被要求生成一些 Excel 报告 我目前在数据中大量使用 pandas 所以我自然想使用pandas ExcelWriter生成这些报告的方法 然而 固定的列宽是一个问题 到目前为止我的代码很简单 假设我有一个名为的数据框df write
  • 生成 v5 UUID。什么是名称和命名空间?

    我读过man页面 但我不明白什么name and namespace是给 对于版本 3 和版本 5 UUID 附加命令行 必须给出参数名称空间和名称 命名空间是 字符串表示形式的 UUID 或 内部预定义命名空间 UUID 的标识符 当前已
  • R:使用 system() 调用的别名命令

    In my bash profile文件我把这个alias命令 which mvsync alias mvsync rsync remove source files arvuP usr bin rsync 它在 bash shell 中工
  • 如何在 Rails3 和 Devise 注册后添加回调

    如何添加回调来为注册用户创建帐户 设计文件 registrations controller rb 位于controllers devise下 我的用户模型具有 has many accounts 关系 并且帐户模型具有 own to us
  • R 中的 REGEX:从字符串中提取单词

    我想这是一个常见的问题 我发现了很多网页 包括一些来自SO的网页 但我无法理解如何实现它 我是 REGEX 新手 我想在 R 中使用它来提取句子中的前几个单词 例如 如果我的句子是 z I love stack overflow it is
  • 使用 DownloadManager 在活动内显示下载进度

    我试图重现 DownloadManager 在我的应用程序内的通知栏中显示的相同进度 但我的进度从未发布 我正在尝试使用 runOnUiThread 更新它 但由于某种原因它没有更新 我的下载 String urlDownload http
  • UITableview 附件类型在滚动时消失

    我制作了一个 tableView 我需要在其中选择多个选项 选项已选择 但当我滚动表视图时 复选标记选项消失 其他一些行显示该复选标记 这是我的代码didselectedrowAtindex method table option is U
  • Chrome中textarea的默认字体样式是什么? (文本输入与文本区域的文本“大小”)

    Chrome中textarea的默认字体样式是什么 使它默认的样子应该是什么样的 我的问题的目的是我想让输入中的文本与文本区域中的文本相同 在文本输入中可能太 粗体 P问题应该是 文本区域应用的默认字体属性是什么 如果我想看起来像默认的那样
  • 如何打开内存中存储的 PDF

    我有一个应用程序 可以下载 PDF 文件并将其以 MODE PRIVATE 出于安全目的 存储在应用程序的内部存储器上 FileOutputStream fos getApplicationContext openFileOutput LO
  • 将自定义命令行参数传递给 Rust 测试

    我有一个 Rust 测试 它委托给 C 测试套件使用doctest并希望将命令行参数传递给它 我的第一次尝试是 in mod ffi pub fn run tests cli args mut String gt bool test fn
  • AutoMockContainer 支持具有非接口依赖项的自动模拟类

    我有一个具有非接口依赖性的构造函数 public MainWindowViewModel IWorkItemProvider workItemProvider WeekNavigatorViewModel weekNavigator 我正在
  • 如何更改禁用控件的样式?

    当 WinForm 元素被禁用时 它会变灰 是否可以禁用某个元素 但调整禁用的样式 使其看起来仍然启用 而不是灰显 防止可聚焦控件夺取焦点需要采取多种对策 您必须包含一个控件does此类的重点是抵制所有尝试 using System usi
  • python进程池,每个进程都有超时,而不是池中的所有进程

    我需要运行许多进程 但不是全部运行 例如同时运行 4 个进程 multiprocessing Pool正是我所需要的 但问题是 如果进程持续超过超时 例如 3 秒 我需要终止该进程 Pool仅支持等待所有进程的超时 而不是每个进程的超时 这
  • Acer Iconia A500 不在 adb 设备中

    刚刚拿起一台 Iconia A500 是的 优惠券优惠 100 美元 并开始玩游戏等 我决定终于到了工作的时候了 启动了 adb 并启动了 eclipse 来测试一个应用程序 我发现它不在我的设备列表中 我已经尝试安装 acer 驱动程序
  • 更改 ggplot2 中图例键中的符号

    此 R 代码生成一个 ggplot2 图表 其中图例键包含以红色 蓝色和绿色重复的字母 a x lt rnorm 9 y lt rnorm 9 s lt rep c F G K each 3 df lt data frame x y s r
  • 为什么atomic.StoreUint32比sync.Once中的普通分配更受欢迎?

    在阅读Go源码时 我对src sync once go中的代码有一个疑问 func o Once Do f func Note Here is an incorrect implementation of Do if atomic Comp
  • Newtonsoft JSON 动态属性名称

    有没有办法在序列化期间更改 Data 属性的名称 以便我可以在 WEB Api 中重用此类 例如 如果我要返回分页的用户列表 则数据属性应序列化为 用户 如果我要返回项目列表 则应称为 项目 等 这样的事情可能吗 public class
  • 使用 JavaCV 和 FFmpeg 播放视频

    所以 我正在为 Android 开发一个自定义视频播放器 但我需要播放的不仅仅是 Android 支持的视频文件 mp4 3gp like wmv avi flv 目前 我已经将任何视频类型转换为 mp4 并且可以在重新编码后播放它们 但我
  • 在 JBuilder 中生成嵌套 JSON 数组

    我在 ruby on Rails 中有这个模型 分支模型 has many menus class Branch lt ActiveRecord Base belongs to place belongs to city has many