如果我使用kaminari,如何设置特定范围的限制

时间:2012-07-18 16:30:20

标签: scope ruby-on-rails-3.2 kaminari

我正在使用kaminari宝石进行分页。

我想只显示添加的10个最新项目。对于其他范围,我最多可以显示30个。

以下是Resources控制器的索引操作:

@filt= params[:filter] || 'no_filter'
      @resources = get_resources(params[:category]||=nil).approved.send(@filt).page(params[:page]).per(30)

以下是Resource.rb模型中添加的最新资源的范围:

scope :recent, order('created_at DESC').limit(10)

因为per(30)是为其他范围设置的,所以它会覆盖:recent范围中的限制。

我如何只为最近的范围显示10?

1 个答案:

答案 0 :(得分:0)

您可以像这样简单地更改功能的顺序:

@resources = get_resources(params[:category]||=nil).approved.page(params[:page]).per(30).send(@filt)

PS:相反,(params[:category]||=nil)您只需执行此操作(params[:category])

PS2:我认为最好创建一个方法类,我们就像这样:

@resources = Resource.find_by_category(params[:category]).approved.page(params[:page]).per(30).send(@filt)