现在我在我的控制器中有这个:
def index
@votes = Vote.paginate(:page => params[:page], :order=>"created_at DESC")
end
但我正在考虑将.paginate移动到views / index.html.erb(或该目录中的部分)。 Paginate在我看来它似乎属于View,因为它管理投票集合的显示方式。我能正确理解MVC分离吗?
答案 0 :(得分:5)
不,你想要它在控制器中
#paginate
会改变您的查询,使其具有限制和起点。
因此,如果您有100条记录,那么第2页的分页将会调用liks
select * from votes LIMIT(30) OFFSET(30)
它只会返回30条记录。如果你在视图中做了同样的事情,你的@votes将有1000条记录,并砍掉所需的内容。
您的视图应该是相当愚蠢的,并且会对Controller提供的记录进行迭代(它从模型中获取)。