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