尝试在rails 3中使用will_paginate gem,我想尽可能多地将这项业务转移到模型中,但是看起来很难,而且我还没有看到太多。通常,你会做类似的事情:
Resource.where(:foo => :bar).paginate(:page => params[:page], :per_page => 10)
无论如何将params[:page]
放入模型中?那里无法访问params
。我的理想是以某种方式将其用于scope
。
答案 0 :(得分:1)
如果方法将params作为参数并且params由控制器传递给模型,则params在模型的方法中可用。但是,最好只传递params [:page],因为模型应该对params一无所知。例如,请参阅this example。
分页主要不是业务逻辑:它是关于如何呈现数据的。因此,涉及的大多数代码都不属于模型。然而,will_paginate提供了方便的方法来获得模型的结果0-15,15-30 ......,并且咳出这些列表只是一个activerecord模型的能力,这就是它属于那里的原因。