次のシナリオがあります。
User->HABTM->businesses
Suppliers->HABTM->businesses
Suppliers->HAS_MANY->Payments
ビジネス -> サプライヤーおよびユーザー -> ビジネス関係を記述する HABTM 関係を通じて、ユーザーのすべての支払いを取得する方法を理解するのに本当に苦労しています。
私は、サプライヤーのビジネス関係を通じてユーザーに属するすべての支払いを行っています。
私はこれを SQL で非常に簡単に行うことができますが、レールの方法で行うのに問題があります。
これは、投稿モデルを介してユーザーに属するすべてのコメントを取得する投稿に似ています。
どんな助けでも大歓迎です。
それは可能ですか?
私は現時点でこれをやっています:
has_many :payments,:finder_sql => Proc.new {
%Q{
SELECT DISTINCT *
FROM payments
INNER JOIN businesses_users ON businesses_users.user_id
INNER JOIN businesses_suppliers ON businesses_suppliers.business_id
WHERE payments.supplier_id = businesses_suppliers.supplier_id AND businesses_users.user_id = #{id}
ORDER BY payments.created_at
}}
これにより、user.paymentsを実行できます