Rails不使用includes来尊重我的选择字段

时间:2014-09-12 02:31:51

标签: sql ruby-on-rails postgresql activerecord rails-activerecord

我想写一个带有活动记录的查询,似乎从不尊重我想做的事情。所以,这是我的例子:

Phonogram.preload(:bpms).includes(:bpms).select("phonograms.id", "bpms.bpm")

此查询从phonograms和bpms返回我的所有字段。问题是我需要在此查询中添加更多15个关系。

我也尝试使用加入,但无法正常使用。我有10个录音,只返回3个。

有人经历过吗?你是怎么解决的?

干杯。

1 个答案:

答案 0 :(得分:0)

选择with includes不会产生一致的行为。看来如果包含的关联没有返回结果,select将正常工作,如果返回结果,select语句将无效。实际上,它将被完全忽略,因此您的select语句可能引用无效的表名,并且不会产生错误。 select with join将产生一致的行为。 这就是为什么你最好选择加入:

Phonogram.joins(:bpms).select("phonograms.id", "bpms.bpm")