2015-11-04 2 views
1

Вот моя схема:ActiveRecord Вложенный запрос для сферы

У меня есть

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

Теперь я хочу, чтобы создать область в Parcela, который будет выглядеть как

Parcela.from_agencia (agencia_id) и который будет запрашивать только парцалы, принадлежащие pagamento, принадлежащие к pagavel, которые принадлежат этому agencia_id.

+0

Вы можете собрать кучу областей? Поэтому определите область для каждого из этих индивидуальных запросов. – azrosen92

+0

Как бы вы это предположили? – Guido

ответ

0

Использование scope с joins в parcela.rb:

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

+0

Эй, спасибо за ответы, я сделал: Parcela.includes (pagamento:: pagavel) .where (pagavels: {agencia_id: 1}) и получил Не могу с нетерпением загрузить полиморфную ассоциацию: pagavel – Guido

+0

Пропущенный «полиморфный» в вашем схема, если вам это действительно нужно, используйте это обходное решение http://stackoverflow.com/questions/16123492/eager-load-polymorphic – Inpego