0

の git wiki をフォローしていますhas_scope

例があります:

# in model
scope :featured, -> whatever

# in controller
has_scope :by_degree
...
@graduations = apply_scopes(Graduation).all

そうしました:

class Account < ActiveRecord::Base
  scope :inactive, -> { where(deleted_at: nil) }
end

class Admin::AccountsController < Admin::BaseController
  has_scope :inactive

  private
  def collection
    apply_scopes(Account)
  end

  def end_of_association_chain
    @end_of_association_chain ||= super.order(created_at: :desc)
  end
end

ビューでコレクションにアクセスするとき(のようにcollection.each)-このエラーが発生します:

undefined method `each' for #<Class:0x007fbeca533eb0>

授業をするそうです。しかし、オブジェクトの配列が含まれていると思います。

メソッドを追加しようとしましたload

collection.load.each ...

しかし、別のエラーが発生しました:

wrong number of arguments (0 for 1..2)

さらにどこを見るべきかわかりません。何か案は?

4

1 に答える 1

0

あなたはこれを間違っていました。

private
  def collection
    @accounts ||= end_of_association_chain.order(created_at: :desc)
  end

そして、これがすべてです。Inherited_resources は end_of_association_chain 内でスコープを自動的に適用します

于 2014-09-25T07:56:33.520 に答える