当前位置: 首页 > 面试题库 >

嵌套:json包含在Rails中

华建同
2023-03-14
问题内容

我有三种模式:

class A < ActiveRecord::Base
  has_many :bs
end

class B < ActiveRecord::Base
  has_one :c
  belongs_to :a
end

class C < ActiveRecord::Base
  belongs_to :b
end

我想获取包含A的所有B和C的json数据。我尝试了许多类似的操作:

render json: @as, :include => [:bs => [:include=>[:c]]

但没有任何效果。什么是做到这一点的好方法。


问题答案:

请参阅以ActiveModel::Serializers::JSON#as_json查看可以传递给的选项render :json。报价:

要包括关联,请使用:include

二级和更高级别的关联也可以工作:

>     user.as_json(:include => { :posts => {
>                                  :include => { :comments => {
>                                                  :only => :body } },
>                                  :only => :title } })
>     # => { "id": 1, "name": "Konata Izumi", "age": 16,
>     #      "created_at": "2006/08/01", "awesome": true,
>     #      "posts": [ { "comments": [ { "body": "1st post!" }, { "body":
> "Second!" } ],
>     #                   "title": "Welcome to the weblog" },
>     #                 { "comments": [ {"body": "Don't think too hard" } ],
>     #                   "title": "So I was thinking" } ]
>     #    }

不需要像自动那样直接调用to_jsonas_json直接调用render :json



 类似资料:
  • 问题内容: 如何将JSON传递到RAILS应用程序,以便它将以has_many关系创建嵌套的子对象? 这是我到目前为止的内容: 两个模型对象。 使用通勤,我可以设置标准控制器。我希望能够使用JSON在一个REST调用中创建一个Commute对象以及几个子Location对象。我一直在尝试这样的事情: 更具可读性的JSON是: 执行该命令时,将得到以下输出: 看起来好像正在读取JSON数组的loca

  • 问题内容: 我正在尝试将一个对象呈现为json,包括嵌套的属性,并按created_at属性对其进行排序。 我正在使用代码执行此操作: 如何按created_at属性对呼叫进行排序? 问题答案: 如果您认为Rails是如何工作的,则调用只是与Call模型相关的一种方法。有几种方法可以做到这一点。一种是在关联上设置订单选项。一种是全局更改Call模型的默认范围,另一种是在Customer模型中创建一

  • 问题内容: 我有一个对象映射,它以类似标签的方式使用嵌套对象(在我们的示例中)。每个标签可以属于一个客户/用户,并且当我们要允许我们的用户针对生成样式搜索时。 问题是,当我们运行查询时,如果一个对象有多个道具,并且当其他道具不返回时,如果多个道具之一与过滤器匹配,则当我们想要相反时- 如果一个道具返回false,则不返回vs。如果返回true,则返回true。 我在这里发布了一个完整的示例:htt

  • 问题内容: 现在我有这行: 但是,由于程序属于公司,我想显示公司名称而不是公司ID。 渲染程序时如何包括公司名称? 问题答案: 这样的事情应该起作用:

  • 问题内容: 说我要制作以下JSON 目前,这就是我实现的方式 似乎应该有一个更好的方法来做到这一点,而不是做更多的事情,然后将它们放置在主体中。有比我正在使用的方法更好的动态构建方法吗? 在此先感谢您的帮助! 问题答案: 如果您处理大量JSON数据,我真的建议您使用Gson或Jackson。这要方便得多,并且两个库都很好地支持与Java对象之间的相互转换(与通过JSONObjects手动构建JSO

  • 我是JOLT转换的新手,我发现它在JSON转换中非常有用。但是当我遇到嵌套且复杂的JSON时,我感到困惑。 下面的JSON是一个嵌套且复杂的JsonArray,我需要将其转换为完全扁平的JsonArray。 JSON输入: 如您所见,我们有一个空的对象“字母类型”:[],但在其他Json对象中,“字母类型”有自己的对象并且不是空的。 下面的JSON是我的预期输出。 预期输出: 我需要的是一个JOL