私は次の設定をしています:
class Program
has_many :participants
end
class Participant
belongs_to :user
end
class User
has_many :participants
end
クラスメソッドまたはスコープが、特定のユーザーが参加しているすべてのプログラムを返すようにしたい。これが私がこれまでに持っているものです:
def self.where_user_participates(user)
Program.joins(:participants).where('participants.user_id' => user.id)
end
私はそれがうまくいくと信じていますが、私はそれが好きではありません。私は'idについて話すのではなく、関連付けを使用することを好みますが、それを機能させることができませんでした。例:
def self.where_user_participates(user)
Program.joins(:participants).where('participants.user' => user)
end
どうすればこれを改善できますか?そして、公式の「スコープ」は不要であり、クラスメソッドはRails 3の「ベストプラクティス」であるというのは本当ですか?