0

我已经看到了用于为多个角色配置设计的链接https://github.com/plataformatec/devisedevise但我对如何识别一个特定的事物user是一个事实感到困惑admin?请解释一下,因为管理员没有任何注册过程。我也是新手,ror所以请解释一下为多个角色配置设备的所有步骤?

4

2 回答 2

3

CanCan 是迄今为止您最好的 ruby​​ 角色解决方案,我建议您查看Tony 的使用 Devise/CanCan来创建基于角色的系统。我花了一点时间才弄清楚如何解决它,但现在它对我来说很神奇。

第二种方法是

我会推荐一个榜样。在这种情况下,用户会have_and_belong_to_many :roles,而角色会have_and_belong_to_many :users。这在角色和用户之间创建了多对多关系。有关关联的更多信息,请参阅RailsGuide。

在您的 CanCan ability.rb 文件中,您可以执行以下操作(我只是在猜测您的设置):

 can :manage, Brand do |brand|
  user.has_role?("brand_manager") && user.brands.include?(brand)
end

在您的 user.rb 文件中,编写如下内容会很有帮助:

def has_role?(name)
  role = Role.find_by_name(name)
  (self.roles.include?(role)) ? (return true) : (return false)
end

希望这可以帮助。

于 2012-11-03T10:15:19.893 回答
1

对于使用Rails 5DeviseCanCanCan的更新解决方案(CanCan 看起来不再受支持),请查看:

  1. RAILS 5:具有 3 种角色类型的用户帐户 - DEVISE、RAILS_ADMIN、CANCANCAN

这是使用 Rails Pundithas_secure_password的替代解决方案:

  1. 在 Ruby on Rails 中实现角色和权限

使用 CanCanCan 的优势在于它将授权与用户角色分离,而许多人发现 Pundit 更易于使用侵入性更小。两者都很好。

于 2018-02-01T13:17:44.290 回答