2015-11-04 27 views
1

这里ActiveRecord的嵌套查询是我的方案:的范围

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

现在我想创建Parcela的涵盖范围看起来像

Parcela.from_agencia(agencia_id)和将查询只属于属于属于该agencia_id pagavel pagamento的Parcelas。

+0

你可以连续一串范围的?因此,为每个单独的查询定义一个范围。 – azrosen92

+0

你会怎么建议? – Guido

回答

0

使用scope在parcela.rb joins

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

+0

嘿,回答thans,我所做的:Parcela.includes(pagamento:pagavel)。凡(pagavels:{agencia_id:1}),并得到了不能急于加载多态性关联:pagavel – Guido

+0

错过'polymorphic'在方案中,如果你真的需要它,使用此解决方法http://stackoverflow.com/questions/16123492/eager-load-polymorphic – Inpego