使用包括时按联接表中的字段进行过滤

时间:2018-12-11 06:45:32

标签: ruby-on-rails join activerecord rails-activerecord

我有2个这样的模型:

Account-有两列account_idaccount_name

MonthForecast-具有3列-account_identityreport_key

我在has_many :month_forecasts中定义了Account,在belongs_to :account中定义了MonthForecast

我正在使用这样的包含内容:

@months = Account.includes(:month_forecasts)

如何在上述MonthForecast操作期间将过滤条件应用于仅存在于includes中的字段?

1 个答案:

答案 0 :(得分:1)

您需要在where中包括连接的表名,如下所示(根据rails版本的不同,您可能还需要包括.references(:month_forecasts)):

Account.includes(:month_forecasts)
       .where(month_forecasts: { field: :value })