1
У меня есть три модели:ActiveRecord выбрать через Mutiple HABTM
class User < ActiveRecord::Base
has_and_belongs_to_many :groups
end
class Group < ActiveRecord::Base
has_and_belongs_to_many :channels
has_and_belongs_to_many :users
end
class Channel < ActiveRecord::Base
has_and_belongs_to_many :groups
end
Какой самый эффективный способ, чтобы получить все каналы (без дубликатов) для конкретного пользователя?
Так эффективно:
SELECT DISTINCT name FROM users
JOIN groups_users ON users.id=groups_users.user_id
JOIN channels_groups ON groups_users.group_id=channels_groups.group_id
JOIN channels ON channels_groups.channel_id=channels.id;
Я люблю рубин. Спасибо за это и &: shortcut. – Dave
Добро пожаловать @Dave :-) Вы должны принять ответ, если он решает вашу проблему;) – MrYoshiji
Просто примечание, uniq! возвращает nil, если никаких изменений не было сделано. Однако uniq отлично работает в этом случае. – Dave