Просмотр всех записей, которые существуют в связанной записи - PullRequest
0 голосов
/ 17 апреля 2019

Цель: Я хочу показать все категории, которые в настоящее время существуют в модели листинга.

Например, листинг может иметь много категорий.Скажем, у меня есть 100 категорий и 10 списков, но только 20 из этих категорий в настоящее время используются в Listing.category_ids, я только хочу, чтобы они отображались.

Я пробовал:

@categories = Category.all.where(id: @listings.each {|listing| listing.category_ids})

@categories = Category.where(id: Listing.all.includes(:category_ids)).order(name: :asc)

@categories = Category.where(id: [@listings.each {|listing| listing.category_ids}])

И некоторые другие подобные способы.Кстати, я использую Postgres.

Обе эти попытки появились только в первой категории в модели категории, хотя эта категория не используется.

Модели:

Listing

has_and_belongs_to_many :categories

Категории:

has_and_belongs_to_many :listings

У меня тогда есть таблица присоединения Categories_Listings, тоже t для всего этого.Вот где хранятся ассоциации.

1 Ответ

1 голос
/ 17 апреля 2019

Вам просто нужно объединиться для этого. Попробуйте

Category.joins(:listings)

Таким образом, вы должны видеть только строки, которые совпадают в списках

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...