У меня есть три модели:
class Tenant < ActiveRecord::Base
has_many :sites
end
class Site < ActiveRecord::Base
belongs_to :tenant
has_and_belongs_to_many :users
end
class User < ActiveRecord::Base
has_and_belongs_to_many :sites
end
Для сайта и пользователей у меня есть таблица соединений (sites_users).
Каждый сайт имеет n пользователей. Каждый Арендатор имеет n Сайтов.
Чтобы получить список пользователей для определенного сайта, это просто:
t = Tenant.first
s = t.sites.first
s.users
Но есть ли ассоциация, которую я могу добавить к Арендатору, чтобы предоставить список всех пользователей между всеми сайтами этого арендатора? Так что я могу сделать:
t = Tenant.first
t.users