1

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

ford
----
id
model

toyota
----
id
model

chevrolet
----
id
model

我想创建一个带有分页的网页,在其中显示由 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 条记录。因此,我得到一个空引用错误。

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

4

0 回答 0