Rails - вопрос ассоциации новичков с моделями has_many и HABTM - PullRequest
0 голосов
/ 01 ноября 2010

У меня есть три модели:

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

1 Ответ

0 голосов
/ 01 ноября 2010

Несколько человек просили об этом, вы увидите некоторые обсуждения в Rails Lighthouse Ticket # 8994 некоторых разработчиков, пытающихся объединить функциональность плагина nested_has_many_through, Если вы используете Rails 2.3, плагин nested_has_many_through может работать на вас, в противном случае в Rails 3 вы можете написать запрос ARel , чтобы найти правильный набор исследований.

...