Я хочу найти всех пользователей, у которых есть определенные записи LanguagesUsers. В настоящее время я пытаюсь запросить таблицу соединений, LanguagesUsers для всех случаев, когда у пользователя есть 2 соответствующих языка_ид и уровень
Чтобы найти, где есть только одна ассоциация, это работает:
User.joins(:languages_users).where(languages_users: {language_id: 2, level: 5})
Как я могу включить в запрос 2 языка_узлов, где они ОБЫЧНЫ?
(Например, я хочу language_id: 2 level: 1
И language_id: 3 level: 5
)
Я пробовал это, но он возвращает ошибку:
User.joins(:languages_users).where(languages_users: {language_id: 2, level: 5} AND languages_users: {language_id: 1, level: 3})
Этот возвращает пустой массив, хотя определенно есть пользователи, у которых есть 2 languages_users, которые соответствуют этим критериям:
User.joins(:languages_users).where(languages_users: {language_id: 2, level: 5}).where(languages_users: {language_id: 1, level: 3})
Каков правильный формат для этого? Спасибо!!
UPDATE: LanugagesUser - таблица соединений между Языки и Пользователи и имеет язык_ид, уровень, user_id
gem 'sqlite3', group: :development
group :production do
gem 'pg'
gem 'rails_12factor'
end
ОБНОВЛЕНИЕ 2: Поскольку оба ответа предложили или утверждение, я не думаю, что правильно передаю этот факт:
ОБЩИЕ ЗАПИСИ МОГУТ БЫТЬ НАСТОЯЩИМ. Например. Я хочу знать, что у пользователей есть UserUser (language_id: 1, level: 5) AND LanguagesUser (language_id: 2, level: 1)