我有以下情况:
User->HABTM->businesses
Suppliers->HABTM->businesses
Suppliers->HAS_MANY->Payments
我很难弄清楚如何通过描述业务->供应商和用户->业务关系的 HABTM 关系为用户获得所有付款。
我毕竟是通过供应商业务关系属于用户的付款。
我可以很容易地用 SQL 做到这一点,但在使用 rails 方式时遇到了麻烦。
这类似于通过帖子模型获取属于用户的所有评论的帖子。
任何帮助,将不胜感激。
甚至可能吗?
我现在正在这样做:
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