2009-05-04 6 views
0

名前付きスコープをグループ化するにはどうすればよいですか?たとえば、UserとActivityという2つのモデルがあります。ユーザーは多くのアクティビティを持つことができます。Railsで名前付きスコープをグループ化/再利用するにはどうすればいいですか?

活動は、2つの名前付きスコープを持っています

Activity.ordered_by_created_at 
Activity.top_20 

は私が

Activity.recent == Activity.ordered_by_created_at.top_20 

そのように、私はuser.activitiesに最近呼び出すことができるように、新しい名前付きスコープActivity.recentを作成したいです。

user.activities.recent 

これは可能ですか?ありがとう。

答えて

0

あなたがuser.activitiesを呼び出すと、あなたはhas_manyの持っていると仮定すると:あなたのuser.rbファイル内の活動の関係を、ActiveRecordのは、すべてのユーザーの活動の配列を返します。

Activtiy.recent.user(UID)のアプローチを変更し、activity.rbファイルに名前付きスコープを記述して、そのアクティビティを持つ関連ユーザーを見つけることができます。

+0

Hmmm ...うん、Activity.find_by_user_id(user.id).recentはおそらくそれを行う方法です。ありがとう。 – gsmendoza

0

あなたはおそらくこれを行うことができます:

class Activity < ActiveRecord::Base 
    def self.recent 
    ordered_by_created_at.top_20 
    end 
end 
+0

ええ、それは私がやったことです。しかし、 'user.activities.recent'では動作しません。 – gsmendoza

関連する問題