我有一个Company
has_many
班TerminalValue
TerminalValue
。 TerminalValue
有一个字段`预测。
我想过滤那些forecast
true
Company.where(terminal_values: {forecast: true})
Company Load (2.3ms) SELECT "companies".* FROM "companies" WHERE "terminal_values"."forecast" = 't'
PG::UndefinedTable: ERROR: missing FROM-clause entry for table "terminal_values"
LINE 1: SELECT "companies".* FROM "companies" WHERE "terminal_values...
^
: SELECT "companies".* FROM "companies" WHERE "terminal_values"."forecast" = 't'
至少{{1}}的公司。
我试过这样,但失败了。
{{1}}
如何编写我想要的过滤方法?
答案 0 :(得分:2)
您需要使用joins
或includes
来实现您的目标。
<强> 加入 强>
Company.joins(:terminal_values).where('terminal_values.forecast = ?', true)
<强> 包括 强>
Company.includes(:terminal_values).where('terminal_values.forecast = ?', true).references(:terminal_values)