【问题标题】:ActiveRecord nested query for scope范围的 ActiveRecord 嵌套查询
【发布时间】:2023-04-07 22:14:02
【问题描述】:

这是我的方案:

我有

parcelas belongs_to pagamento
pagamento belongs_to :pagavel, polymorphic: true 
pagavel belongs_to :agencia

现在我想在 Parcela 中创建一个看起来像这样的范围

Parcela.from_agencia(agencia_id) 并且只会查询属于 pagamento 且属于 pagavel 且属于此 agencia_id 的 Parcelas。

【问题讨论】:

  • 你可以将一堆范围链接在一起吗?因此,为每个单独的查询定义一个范围。
  • 你会怎么建议?

标签: mysql ruby-on-rails activerecord scope querying


【解决方案1】:

在 parcela.rb 中使用 scopejoins

scope :from_agencia, ->(agencia_id) { joins(pagamento: :pagavel).where(pagavels: {agencia_id: agencia_id}) }

【讨论】:

  • 嘿,谢谢你的回答,我做了: Parcela.includes(pagamento: :pagavel).where(pagavels: {agencia_id: 1}),得到了 Can not eagerly load the polymorphic association :pagavel
  • 在你的方案中错过了polymorphic,如果你真的需要它,使用这个解决方法stackoverflow.com/questions/16123492/eager-load-polymorphic
猜你喜欢
  • 2021-05-20
  • 1970-01-01
  • 2017-02-23
  • 1970-01-01
  • 2023-03-25
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多