0

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

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

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

对于在评论中比较这些方法的文章点数表示赞赏,因为我找不到太多比较它们的材料。

4

1 回答 1

1

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

  1. 向用户添加单个字符串字段;称为“角色”。
  2. 向 User 添加一个数组来保存值: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

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

于 2013-09-07T23:27:06.460 回答