【发布时间】:2011-02-22 16:53:47
【问题描述】:
我们有一个 Customer 模型,它有很多 has_many 关系,例如到 CustomerCountry 和 CustomerSetting。通常,我们需要将这些关系相互连接起来;例如查找给定国家/地区的客户设置。表达这一点的正常方式是这样的
CustomerSetting.find :all,
:joins => {:customer => :customer_country},
:conditions => ['customer_countries.code = ?', 'us']
但等效的 SQL 以
结尾SELECT ... FROM customer_settings
INNER JOIN customers ON customer_settings.customer_id = customers.id
INNER JOIN customer_countries ON customers.id = customer_countries.customer_id
当我真正想要的是
SELECT ... FROM customer_settings
INNER JOIN countries ON customer_settings.customer_id = customer_countries.customer_id
我可以通过显式设置 :joins SQL 来做到这一点,但是有没有一种惯用的方式来指定这个连接?
【问题讨论】:
-
您在
CustomerSetting班级中有哪些关联? -
@William: belongs_to :customer
标签: ruby-on-rails join