Ruby on rails 坎坎角色战略比较/权衡

Ruby on rails 坎坎角色战略比较/权衡,ruby-on-rails,database-design,authorization,cancan,roles,Ruby On Rails,Database Design,Authorization,Cancan,Roles,要使用cancan在Rails中创建支持授权的应用程序,由开发人员决定角色方法。现在我需要找出最适合我的案例——这是传统的每个用户一个角色的模式 我发现的方法在我看来很相似。我想知道在选择榜样时是否真的存在技术上的差异,或者只是偏好的问题?如果存在技术上的差异,在选择一种或另一种模型时,特别是在缩放方面,有哪些权衡 我可以找到一些可能的模型: 使用宝石 使用 使用 根据其角色,为每个用户类型提供单独的表 以及使用关系 对于在评论中比较这些方法的文章,我非常感谢,因为我找不到太多比较它们的材

要使用cancan在Rails中创建支持授权的应用程序,由开发人员决定角色方法。现在我需要找出最适合我的案例——这是传统的每个用户一个角色的模式

我发现的方法在我看来很相似。我想知道在选择榜样时是否真的存在技术上的差异,或者只是偏好的问题?如果存在技术上的差异,在选择一种或另一种模型时,特别是在缩放方面,有哪些权衡

我可以找到一些可能的模型:

  • 使用宝石
  • 使用
  • 使用
  • 根据其角色,为每个用户类型提供单独的表
  • 以及使用关系

对于在评论中比较这些方法的文章,我非常感谢,因为我找不到太多比较它们的材料。

如果您每次使用只需要一个角色,请使用最简单的方法

  • 向用户添加单个字符串字段;被称为“角色”
  • 向用户添加一个数组以保存以下值:
    ROLES=%w{System\Admin Customer Etc}
  • 向用户添加一些助手方法,以便您可以轻松检查角色(即user.admin?)
  • 角色助手:

    ROLES.each do |role_name|
      define_method "#{role_name.downcase.tr(" ", "_")}?" do
        role == role_name
      end
    end
    
    如果需要,您可以在将来轻松利用更复杂的选项