Ruby中数组的未定义方法`offset'

时间:2013-08-06 00:48:12

标签: ruby-on-rails ruby activerecord

我在分页方法步骤中使用以下步骤:

编辑:nodes2是一个数组。

nodes = nodes2.take(per_page).offset((page_number.to_i - 1) * per_page)
@length = (nodes2.count/per_page).ceil

我收到以下错误:

undefined method 'offset' for #<Array:0x00000005905128>

基本上我使用以下步骤,它们工作正常,因为我从.leaves方法中获取对象,但我不知道如何处理数组

nodes = inode.leaves.limit(per_page).offset((page_number.to_i - 1) * per_page)
@length = (inode.leaves.count/per_page).ceil

有人可以帮助我。谢谢!

1 个答案:

答案 0 :(得分:2)

takeArray上的一种方法。当你针对nodes2(我假设它是一个ActiveRecord::Relation对象)运行它时,它正在做与此相同的事情:

nodes = nodes2.to_a.take(per_page)...

因此,offset正在Array对象上运行。您可以尝试将take(...)作为最后一个方法调用,这样offset仍在针对ActiveRecord运行:

nodes = nodes2.offset((page_number.to_i - 1) * per_page).take(per_page)