0

ページ付けにカミナリの宝石を使用しています。

追加された最新の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 に答える