Просто случайно, вы рассматривали возможность использования наследования одной таблицы, так что школа - это тип учреждения?
Ваш школьный класс унаследован от Учреждения («школа класса <Учреждение»).Кроме того, я думаю, вы бы назвали это как-то иначе, но у вас также может быть «класс GenericInstitution <Institution».Тогда класс вашей группы может выглядеть так: </p>
class Group
:has_many :school_users, :through => :schools,
:has_many :generic_institution_users, :through => :generic_institutions
# if you need all of the users at once:
:has_many :users, :through => :institutions
end
Возможно, вам придется указать один или два внешних ключа, чтобы это сработало для вас.
Кроме того, я не могуВы можете понять, что такое: институциональное образование, но если вам это действительно нужно, вы можете сделать то же самое там (может быть, «класс институциональное образование <образование», или, может быть, наоборот). </p>