これが可能かどうかはわかりませんが、解決策を思いつくかどうか見てみましょう。これは多かれ少なかれ可読性の観点からコードの品質に関するものであり、実際の問題ではありません。私はすでに解決策を持っているからです。私は友情モデルとユーザーモデルを持っています。友情モデルは、2 人のユーザー間の友情をモデル化するために使用されます。
class Friendship
def self.requested(user)
where(:user_id => user).where(:status => 'requested')
end
def self.pending(user)
where(:user_id => user).where(:status => 'pending')
end
def self.accepted(user)
where(:user_id => user).where(:status => 'accepted')
end
# ...
end
class User
has_many :friendships
# ...
end
引数を指定せずに、ユーザー モデルを介して、要求された、保留中または承認されたスコープを呼び出すことは何とか可能ですか?
a_user.friendships.pending # this does not work, is there a way to get it working?
a_user.friendships.pending(a_user) # works of course!