如何使用子模型的字段过滤模型

时间:2015-08-06 09:03:18

标签: ruby-on-rails

我有一个Company has_manyTerminalValue TerminalValueTerminalValue有一个字段`预测。

我想过滤那些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}}

如何编写我想要的过滤方法?

1 个答案:

答案 0 :(得分:2)

您需要使用joinsincludes来实现您的目标。

<强> 加入

Company.joins(:terminal_values).where('terminal_values.forecast = ?', true)

<强> 包括

Company.includes(:terminal_values).where('terminal_values.forecast = ?', true).references(:terminal_values)