【问题标题】:How can I create this JSON structure with JBuilder and Rails?如何使用 JBuilder 和 Rails 创建这个 JSON 结构?
【发布时间】:2013-05-13 21:11:29
【问题描述】:

TL;DR: 如何使用 jbuilder 创建如下所示的 JSON?

[
  {}, // Your new pagination state
  [{}, ...] // An array of JSON objects
]

加长版:

我正在尝试使用 Backbone.js 和主干分页 https://github.com/wyuenho/backbone-pageable 进行分页。

Backbone-pageable 要求将返回的 JSON 格式化为包含两个对象的数组。第一个对象是包含分页控制信息的常规对象。第二个对象应该是您的实际数据的数组,其格式与 Backbone 通常期望的一样。这些期望被硬编码到主干分页的解析方法中 (source)

拥有一系列不相似的项目似乎很奇怪,但对于这个用例来说似乎可以接受。

对于 json,我过去使用过 rabl,但对于科学,我正在尝试使用 jbuilder,而且我已经走到了这一步......

JSON 结构(错误):

{
  "current_page": 1,
  "total_pages": 6,
  ...,

  "entries": [
    { "id": 131 },
    ...
  ]
}

使用此代码:

json.current_page @posts.current_page
...

json.entries @posts do |post|
  json.extract! post, :id...
end

更接近,但仍然非常错误:/

谢谢

【问题讨论】:

    标签: ruby-on-rails json backbone.js pagination jbuilder


    【解决方案1】:

    你能试试这个吗:

    json.array! [0,1] do |index|
      if index == 0
        json.current_page @posts.current_page
        ...
    
      else
        json.entries @posts do |post|
          json.extract! post, :id...
        end
      end
    end
    

    【讨论】:

    • 感谢您回答我的问题。这是一种奇怪的做法,但它会起作用,所以我标记为正确。
    猜你喜欢
    • 2012-10-03
    • 2014-08-09
    • 2015-11-14
    • 1970-01-01
    • 1970-01-01
    • 2016-01-10
    • 2021-05-31
    • 2012-12-14
    • 2014-05-28
    相关资源
    最近更新 更多