У меня есть несколько аккаунтов и пользователей, которые на данный момент не связаны между собой.
Мне нужно, чтобы пользователи могли быть администраторами, редакторами или любыми (и многими) учетными записями.
На данный момент у меня есть это:
account.rb
has_many :memberships, :dependent => :destroy
has_many :administrators, :through => :memberships, :source => :user, :conditions => {'memberships.is_admin' => true}
has_many :editors, :through => :memberships, :source => :user, :conditions => {'memberships.is_editor' => true}
user.rb
has_many :memberships
has_many :accounts, :through => :memberships
has_many :editor_accounts, :through => :memberships, :source => :account, :conditions => {'memberships.is_editor' => true}
has_many :administrator_accounts, :through => :memberships, :source => :account, :conditions => {'memberships.is_admin' => true}
По сути, то, что я пытаюсь достичь, это хороший простой способ моделирования этого, который работает очень простым способом. Например, возможность сделать следующее было бы очень полезно:
@account.administrators << current_user
current_user.adminstrator_accounts = [..]
и т.д.