Я создал много-много отношений, как следующая структура.Множественная ассоциация «многие-ко-многим» между двумя моделями
Class User
has_many :companies, :through => company_admins
has_many :company_admins
end
Class Company
has_many :company_admins
has_many :users, :through => company_admins
end
Class CompanyAdmin
belongs_to :company
belongs_to :user
end
Здесь User
могут быть назначены в качестве администратора на многих Company
.
Теперь я создать еще много-ко-многим с User
и Company
, где User
может последовать многие company
. Как я могу это сделать?
Я добавил
Class User
has_many :companies, :through => company_admins
has_many :companies, :through => followers
has_many :company_admins
has_many :followers
end
Class Company
has_many :company_admins
has_many :followers
has_many :users, :through => company_admins
has_many :users, :through => followers
end
Class Follower
belongs_to :company
belongs_to :user
end
Теперь, если я искать пользователей, которые администратора для любой компании, используя @company.users
он ищет в Follower
таблице. Может ли кто-нибудь помочь мне с ассоциацией?
Это работает. Я принял ответ. : D – Emu
Еще одна вещь, вы использовали ': class_name'. Я видел, как кто-то использовал ': source'. Не могли бы вы сказать мне разницу? – Emu
@Emu На самом деле это должен быть 'source'. В этом сообщении подробно объясняется http://stackoverflow.com/questions/13611265/rails-difference-between-source-and-class-name-in-models – Pavan