2017-04-14 69 views
0

我有4个对象分页不合并对象

@ob1 = User.where(:area => "India") 
@ob2 = User.where(:area => "USA") 
@ob3 = User.where(:area => "UK") 
@ob4 = User.where(:area => "China") 

合并上述4个对象在对象

@merged_obj= @[email protected] 

合并对象,并传递给分页

@users = @merged_obj.paginate(:page => params[:page], :per_page => 1) 

但谷部工作的错误

NoMethodError: undefined method `paginate' for #<Array:0x007fc3d65a5338> 

分页可与下面的代码:

@users = User.where(:area => "India").paginate(:page => params[:page], :per_page => 1) 

宝石: -

gem 'will_paginate', '~> 3.1.0' 
gem 'will_paginate-bootstrap' 
+0

有你在这里尝试了解决方案吗?第二个答案实际上得到了更多的选票:http://stackoverflow.com/questions/13187076/paginating-an-array-in-ruby-with-will-paginate –

+0

我想显示第一个美国用户下一个印度下一个英国..使用分页,它显示随机 – khalidh

回答

1

它看起来像它不会使用数组。执行下列任一下列代替

@obj = User.where(:area => ["India","USA","UK","China"]) 

@merged_obj = User.where(id: [@ob1.id, @ob2.id, @ob3.id, @ob4.id]) 

编辑:响应意见,如果非规范化的面积不是一个选项做阵列上自己的分页

@page = @merged_obj[start, pagesize] 
+0

我想显示第一个美国用户下一个印度下一个英国..使用分页,它显示随机 – khalidh

+0

这将是一个不同的问题。您需要创建一个新的模型,带有sort_order字段的区域,以便您可以根据需要对用户进行排序。 – s1mpl3

+0

这对我来说也很有用,但是我还想排序,首先显示下一个印度记录的所有美国唱片。 – khalidh