如何对多个模型进行分页?

时间:2013-06-25 23:31:23

标签: ruby-on-rails

假设我有三个或更多具有相同表模式和相同记录数的模型。

ford
----
id
model

toyota
----
id
model

chevrolet
----
id
model

我想创建一个网页 with pagination ,其中我显示所有三个以id交错的表格。例如:

id     model
----   -----
1      Fusion
1      Corolla
1      Camaro
2      Explorer
2      Camry
2      Volt

我尝试使用以下控制器执行此操作:

class CarsController < ApplicationController
  def index
    @cars = []
    @ford = Ford.paginate(:page => params[:page], :per_page => 10)
    @toyota = Toyota.paginate(:page => params[:page], :per_page => 10)
    @chevrolet = Chevrolet.paginate(:page => params[:page], :per_page => 10)

    for i in 0..@ford.size-1 do
      @cars << @ford[i]
      @cars << @toyota[i]
      @cars << @chevrolet[i]
    end
  end
end

分页工作到最后一页。我在最后一页收到错误,因为返回的记录少于10条。在视图中对@cars的迭代不知何故需要10条记录。因此,我得到一个空引用错误。

我不想从福特,丰田和雪佛兰表中获取所有记录,然后分页。我想批量请求记录,然后只显示它们。我的方法很可能是错误的方法。有什么建议?也许,我可以创建一个视图和查询吗?

0 个答案:

没有答案