0

У меня есть три модели:Rails - новичку ассоциации вопрос как с has_many и HABTM модели

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 

ответ

0

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

+0

Спасибо, Патрик! Этот билет в Маяк обнадеживает. Я рассмотрю вопрос о написании запроса ARel для решения проблемы. –