Не может запросить родительскую связь со многими ко многим - Rails - PullRequest
0 голосов
/ 11 октября 2018

У меня есть 3 модели со следующей структурой:

class Customer
     has_many :invoices
     has_and_belongs_to_many :locations
end

class Invoice
    belongs_to :customer
end

class Location
    has_and_belongs_to_many :customers
end

Я пытаюсь написать запрос, который будет захватывать счета, у которых есть родители, связанные с определенным местоположением, но запрос, который я получил, возвращаетНет результатов.

Invoice.where(customer: [locations: {id: specified_location.id}])

Я не уверен, как заставить это работать.Заранее спасибо.

1 Ответ

0 голосов
/ 11 октября 2018

Вы забыли join ваш запрос со связанными моделями.Также в where аргументах должен быть хэш вместо массива (выглядит как опечатка; в противном случае это будет синтаксическая ошибка).

Ваш вызов:

Invoice.joins(customer: :locations)
       .where(customer: { locations: { id: specified_location.id } })
...