Вы должны всегда включать имя таблицы в запрос SQL при работе с ассоциациями.
Действительно, если в другой таблице есть столбец user_id
и вы объедините обе таблицы, вы получитенеоднозначное имя столбца в SQL-запросе (т.е. проблемы).
Итак, в вашем примере:
GroupUser.where("groups_users.user_id != ?", me)
Или более подробный:
GroupUser.where("#{table_name}.user_id IS NOT ?", me)
Примечаниечто если вы используете хеш, вам не нужно об этом беспокоиться, потому что Rails позаботится об этом за вас:
GroupUser.where(user: me)
В Rails 4, как говорит @ dr4k3, метод запроса not
было добавлено:
GroupUser.where.not(user: me)