В моем коде, has_many номер: пользователей, а пользователи имеют: имя атрибутаActiveRecord модель запроса Ассоциации атрибутов
Давайте также сказать, что я NameArr, массив имен.
Каков наилучший способ получить все номера, в которых есть все пользователи в Arr?
(например, если Arr = ["John", "Mark", "Matt"], то я хочу, чтобы все Комнаты имели пользователя с именем «John» и пользователя с именем «Mark» И пользователя с именем «Matt» ")
Я верю, что это решает вопрос, ищу ли я Комнаты с пользователем с именем «Джон» ИЛИ с именем «Марк» ... но я ищу Комнаты, имеющие пользователя с именем «Джон» И Пользователь с именем «Марк» Спасибо! –
Согласно вашему новому требованию, вы хотите, чтобы поведение как ** IN ** запрашивалось с ** И ** за исключением ** ИЛИ **. Для этого в mysql нет предложения по умолчанию, поэтому нам нужно создать пользовательский запрос для этой цели. Я создаю запрос для вас, пожалуйста, попробуйте это 'Room.joins (: users) .where (" users.name in (?) ", NameArr) .group (" rooms.id "). Having (" count (отдельные пользователи .name) =? ", nameArr.count)' –
Я обновил свой ответ. Надеюсь, это сработает, пожалуйста, попробуйте. Спасибо –