康康角色策略策略比较/权衡



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

发现的方法似乎与我非常相似。我想知道在选择榜样时是否真的存在技术差异,或者只是偏好问题?如果存在技术差异,那么在选择一种或另一种模型时,特别是在缩放方面,需要权衡什么?

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

  • 使用宝石罗利夫
  • 使用单表继承
  • 在用户表中使用行
  • 根据每个用户类型的角色为其分隔表
  • 多表继承
  • 包含角色和使用关系的表
感谢在

评论中比较这些方法的文章的要点,因为我找不到太多比较它们的材料。

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

  1. 向用户添加单个字符串字段;称为"角色"。
  2. 将数组添加到用户以保存值:ROLES = %w{System Admin Admin Customer Etc}
  3. 向用户添加一些帮助程序方法,以便您可以轻松检查角色(即 user.admin?

角色帮助程序:

ROLES.each do |role_name|
  define_method "#{role_name.downcase.tr(" ", "_")}?" do
    role == role_name
  end
end

如果需要,您可以在将来轻松利用更复杂的选项。

最新更新