私はUserクラスとのHABTM関係を持つEventクラスを持っています。私は2つのユーザーが関連付けられているイベントのみを含むイベントスコープを作成しようとしています。HABTMリレーションシップカウントを持つRailsスコープ
私は現在、以下を返すイベント#ステータス方法があります。
def status
self.users.length == 2 ? "matched" : "not matched"
end
だから今、基本的に私はすべての「マッチ」イベントを含むスコープを作成する方法を見つけようとしています。私はscope :matched, self.users.length == 2
を試しましたが、これはまったく動作しませんでしたが、紛失しているのと同様の方法がありますか?
EDIT:このクラスメソッドはこれを正しく行いますが、スコープ内にカプセル化することができればなおさらです。
def self.pending
Event.all.map { |e| e if e.status == "matched" }
end
私は実際にメソッドを少し簡略化しましたが、3つの異なるステータスを返すことになっています。 ''(:users.count => 2) 'はうまくいきませんでした。残念ながら、シンボルのカウント方法はないと言います。 –
「users.count」が代わりに機能するかもしれません。私はちょうど成功なしの構文のクイック検索をしました。とにかく、それは基本的なアイデアです。 –