有一个银行实体,每个银行都有许多与之相关联的利率。
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")发布于 2019-11-16 23:46:26
通过反转您尝试的查询,可以轻松实现您想要实现的目标
rates = Rate.includes(:bank).where(period: [3, 6, 12, 60]).order('rates.period DESC')要获取银行,只需执行rates.first.bank
这只是一个变通方法,它不会获取任何不需要的rate记录!希望这能有所帮助!
https://stackoverflow.com/questions/58891716
复制相似问题