渴望在Rails中加载关联实体的子集

有一个银行实体,每个银行都有许多与之相关的利率。

class Bank < ApplicationRecord
  has_many :rates
end

class Rate < ApplicationRecord
  belongs_to :bank
end

每个费率都具有period属性,该属性可以是任意月份。

加载银行时,我如何急于加​​载期3、6、12和60的利率?

还如何按时段升序排列利率?

这是我到目前为止尝试过的。

@banks = Bank.includes(:rates)
      .where(rates: {period: [3,6,12,60]})
      .order("rates.period desc")
xuelei4460 回答:渴望在Rails中加载关联实体的子集

通过反转您尝试的查询,可以轻松实现您想要实现的目标

rates = Rate.includes(:bank).where(period: [3,6,12,60]).order('rates.period DESC')

要获取银行,只需执行rates.first.bank

只是一种解决方法,它不会获取任何不需要的rate记录!希望有帮助!

本文链接:https://www.f2er.com/3089880.html

大家都在问