不同的Devise + Cancan角色之间的关系

时间:2013-02-13 08:43:41

标签: ruby-on-rails ruby-on-rails-3 devise cancan

我正在我的Rails 3应用程序中实现身份验证+授权系统。 我与用户和角色之间存在HABTM关系。

我将拥有的角色是:经理,经销商,运营商,管理员

现在经理可以在他身下有很多经销商。我如何模拟这种关系?

这是一个简单的问题,但我找不到答案。这里也有一个类似的问题:Role-dependent associations但它并没有正确清除事情。

修改

我认为我的要求更简单。对我来说,用户只能是管理员,操作员,经销商或经理。

为此我可以简单地将一个角色列添加到User表。经理和经销商之间的关系现在如何实施?

1 个答案:

答案 0 :(得分:0)

我认为你正在寻找更像

的东西
class Organization < ActiveRecord::Base
  has_many :users
  has_many :managers
  has_many :dealer
  has_many :admins
  has_many :operators
  has_many :dealer_users, :through => :managers, :class_name=>"User"
end

class Admin < ActiveRecord::Base
  has_many :organizations
  belongs_to :user
end

class Dealer
  has_many :organizations
  belongs_to :user
end

class Operator < ActiveRecord::Base
  has_many :organizations
  belongs_to :user
end

class Manager < ActiveRecord::Base
  has_many :dealers
  belongs_to :organization
end

class User < ActiveRecord::Base
  has_many :organizations
  has_many :admins
  has_many :operators
  has_many :managers
  has_many :dealers
end