1

自从我升级到 Rails 3 后,我就一直在使用设计,那是在第一个或第二个 beta 版本左右,现在我还需要一些角色。在网上搜索后,看起来 CanCan 应该是最好的解决方案。但我不确定 CanCan 是否可以管理我的需求,就像我想要一个可以编辑/销毁主题的论坛版主,但创建主题的用户也应该能够编辑,那么我该怎么做呢?

4

1 回答 1

4

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

CanCan 主要是简化语法以集中授权规则。它不提供开箱即用的角色。然而,CanCan wiki有很多非常有用的链接,包括实现角色的简单更复杂的方法。

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

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

希望这可以帮助。

于 2010-12-31T23:42:26.450 回答