Ruby 我们怎样才能把一个大杂烩分成页码?
我有一个纯ruby哈希,如下所示:Ruby 我们怎样才能把一个大杂烩分成页码?,ruby,hash,Ruby,Hash,我有一个纯ruby哈希,如下所示: "1875": { "child1": { "field1": 1875, "field2": "Test1" }, "child2": { "field1": "value1",
"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)]
你能提供更多关于你想做什么的细节吗?什么是散列对象,为什么需要对其进行分页(换句话说,为什么要按顺序呈现散列)?