0

我正在使用 kaminari gem 进行分页。

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

这是资源控制器的索引操作:

@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?

4

1 回答 1

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)
于 2012-07-24T16:34:51.480 回答