Ruby 我们怎样才能把一个大杂烩分成页码?

Ruby 我们怎样才能把一个大杂烩分成页码?,ruby,hash,Ruby,Hash,我有一个纯ruby哈希,如下所示: "1875": { "child1": { "field1": 1875, "field2": "Test1" }, "child2": { "field1": "value1",

我有一个纯ruby哈希,如下所示:

   "1875": {
        "child1": {
            "field1": 1875,
            "field2": "Test1"
        },
        "child2": {
           "field1": "value1",
           "field2": "value2"
        }

    },
    "1959": {
         "child1": {
            "field1": 1875,
            "field2": "Test1"
        },
        "child2": {
           "field1": "value1",
           "field2": "value2"
        }
    }
我有这么多遵循上述结构的键,所以我想对其进行分页

我尝试了以下代码:

@records=@records.t_a.paginate(第页:参数[:页],每页:5)
但它会返回数组中的所有元素,如下所示:

    ["1875", {
        "child1": {
            "field1": 1875,
            "field2": "Test1"
        },
        "child2": {
           "field1": "value1",
           "field2": "value2"
        }

    }
   ]
   ["1959", {
         "child1": {
            "field1": 1875,
            "field2": "Test1"
        },
        "child2": {
           "field1": "value1",
           "field2": "value2"
        }
    }
   ]

首先,请注意散列是一个类似于字典的集合,顺序不应该太重要。因此,如果您需要使用分页,最有可能使用的数据结构是错误的哈希,您应该使用类似数组的内容

@records.t_a.paginate(page:params[:page],per_page:5)
返回一个数组,因为您正在使用将哈希转换为数组。根据您使用的哈希/分页方式,这可能就足够了。例如,若要显示返回的记录(假设有打印子记录的功能),请执行以下操作:

@records.t_a.paginate(page: params[:page], per_page: 5).each |key, value| do
  <h1><%= book.title %></h1>
  <p>print_child(value)</p>
@records.t|a.paginate(page:params[:page],per|u page:5)。每个|键、值
打印子项(值)

如果确实需要哈希,可以将数组转换回哈希:


Hash[@records.t\u a.paginate(page:params[:page],per\u page:5)]

你能提供更多关于你想做什么的细节吗?什么是散列对象,为什么需要对其进行分页(换句话说,为什么要按顺序呈现散列)?