Rails, как объединить два запроса, а затем использовать третий запрос, чтобы вычесть значения из первого в? - PullRequest
0 голосов
/ 24 декабря 2011

У меня есть что-то вроде этого:

@users_x = returns 0 or more records with (id, user_id, etc...)
@users_y = returns 0 or more records with (id, user_id, etc...)
@users_z = returns 0 or more records with (id, user_id, etc...)

Что меня интересует, так это user_ids.Я хочу получить список user_id для @users_x + @user_y при сохранении порядка.А затем возьмите user_ids в @users_z и вычтите это из объединенного списка (x + y).В конце получаем список user_ids.

Как мне это сделать с помощью ruby ​​+ rails?Thx

1 Ответ

3 голосов
/ 24 декабря 2011

Что-то вроде

(@ users_x.collect (&: user_id) + @ users_y.collect (&: user_id)) - @ users_z.collect (&: user_id)

должно делатьтрюк.Возможно, вы захотите добавить туда uniq, если не хотите, чтобы там были дубликаты, если идентификатор встречается в @users_x и @ users_y

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