我有3个具有关联关系的模型:
User (id, email)
SellerProfile (user_id, name)
BuyerProfile (user_id, name)
用户可能具有关联的表之一。
我正在按名称对结果进行排序,但名称可以来自seller_profile
或buyer_profile
表。
我用两个条件子查询来构建它,但我一直在寻找在一个请求中得到它的方法。
我尝试使用联接,但是没有用,因为它不知道用户是否关联了seller_profile
或buyer_profile
。
有人尝试过类似吗?
答案 0 :(得分:0)
使用COALESCE
User.left_joins(:seller_profile, :buyer_profile).order("COALESCE(seller_profiles.name, buyer_profiles.name)")
如果您遇到此类问题,我会重新考虑您的数据库设计。您需要单独的表格吗?您可以提取一些公用表(例如Profile
)吗?