Rails - фильтр с использованием модели соединения на has_many через - PullRequest
0 голосов
/ 07 апреля 2020

Как добавить фильтр в таблицу Place для объекта, который является ссылкой has_many через отношение?

Так выглядят все модели:

class Place < ApplicationRecord
  has_many :facilities, through: :place_facilities
  has_many :place_facilities, dependent: :destroy

class PlaceFacility < ApplicationRecord
  belongs_to :place
  belongs_to :facility
end

class Facility < ApplicationRecord
  has_many :places, through: :place_facilities
  has_many :place_facilities
end

Я хочу, чтобы пользователь мог фильтровать места у которого есть c объектов.

Ответы [ 2 ]

2 голосов
/ 07 апреля 2020

Это довольно легко, используя joins и where

my_places = Place.joins(:facility).where(facilities: {name: 'blackboard'})
0 голосов
/ 07 апреля 2020
Place.includes(:facilities).where(facilities: { attribute: "specific" })

Для получения дополнительной информации см. https://guides.rubyonrails.org/active_record_querying.html#specifying -условия при активной загрузке-ассоциации

...