2

「今後」という名前のスコープを持つ「イベント」というモデルがあり、将来の日付のイベントを返します。Railsコンソールで、入力するたびに

Event.upcoming

イベントのサブセットが正常に返されます。ただし、次のように入力すると:

@events = Event.all
@events.upcoming

undefined method 'upcoming' エラーが発生します。スコープはインスタンス化された変数ではなく、クラスでのみ機能しますか? 前もって感謝します。ヨハン

4

2 に答える 2

14

を呼び出すと.all、はで@eventsはなくなりActiveRelationます。したがって、スコープを呼び出すことはできません。

したがって、Event.where(SOME CONDITIONS).order(ORDERING).upcoming.limit(X)それでも機能しますが、Event.where(SOME CONDITIONS).order(ORDERING).all.upcoming.limit(X)機能しません。

于 2012-05-02T11:45:44.117 に答える
12

変数の設定後にスコープをチェーンできるようにするアクティブな関係オブジェクトを取得するscoped代わりに使用できます。all

@events = Event.scoped
@events.upcoming
于 2012-05-02T12:11:34.793 に答える