Ruby on rails Rails 3和Desive的角色授权

Ruby on rails Rails 3和Desive的角色授权,ruby-on-rails,authentication,devise,roles,cancan,Ruby On Rails,Authentication,Devise,Roles,Cancan,自从我开始使用Rails 3以来,我就一直在使用Desive,那是第一次或第二次测试,现在我还需要一些角色。在网上搜索之后,看起来CanCan应该是最好的解决方案。但是我不确定CanCan是否能够满足我的需求,比如我想要一个论坛主持人,他可以编辑/销毁主题,但是创建主题的用户也应该能够编辑,那么我该如何做呢?根据您上面的简要描述,我想CanCan应该能够满足您的需求 CanCan主要是简化语法以集中授权规则。它不提供现成的角色。但是,有一系列非常有用的链接,包括一个和一个实现角色的方法 我发现直

自从我开始使用Rails 3以来,我就一直在使用Desive,那是第一次或第二次测试,现在我还需要一些角色。在网上搜索之后,看起来CanCan应该是最好的解决方案。但是我不确定CanCan是否能够满足我的需求,比如我想要一个论坛主持人,他可以编辑/销毁主题,但是创建主题的用户也应该能够编辑,那么我该如何做呢?

根据您上面的简要描述,我想CanCan应该能够满足您的需求

CanCan主要是简化语法以集中授权规则。它不提供现成的角色。但是,有一系列非常有用的链接,包括一个和一个实现角色的方法

我发现直接为所有权建模而不是尝试拥有所有者角色是很有帮助的。因此,假设您在上面描述的用例之上使用了更简单的角色方案,那么您将在您的能力定义中建模,因此:

def initialize(user)
  ...
  can :manage, Topic if user.is? :moderator
  can :manage, Topic { |topic| if (topic.user_id == user.id) }
  ...
end

希望这能有所帮助。

根据您上面的简要描述,我想CanCan应该能够满足您的需求

CanCan主要是简化语法以集中授权规则。它不提供现成的角色。但是,有一系列非常有用的链接,包括一个和一个实现角色的方法

我发现直接为所有权建模而不是尝试拥有所有者角色是很有帮助的。因此,假设您在上面描述的用例之上使用了更简单的角色方案,那么您将在您的能力定义中建模,因此:

def initialize(user)
  ...
  can :manage, Topic if user.is? :moderator
  can :manage, Topic { |topic| if (topic.user_id == user.id) }
  ...
end

希望这能有所帮助。

Desive中的角色如何,您能使用它吗?有简单的“admin_flag”解决方案,也有允许同一用户使用多个角色的整个角色对象路由。所有这些都在Desive github网站上。他们可能在最近增加了这一点。但我不知道坎坎舞。也许你有一个选择的需求。Desive中的角色是什么,你能使用它吗?有简单的“admin_flag”解决方案,也有允许同一用户使用多个角色的整个角色对象路由。所有这些都在Desive github网站上。他们可能在最近增加了这一点。但我不知道坎坎舞。也许你有一个选择的要求。