假设我有三个或更多具有相同表架构和相同记录数的模型。
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 条记录。因此,我得到一个空引用错误。
我不想从福特、丰田和雪佛兰表中获取所有记录,然后进行分页。我想批量请求记录,然后简单地显示它们。我的方法很可能是错误的方法。有什么建议么?也许,我可以创建一个视图并查询它?