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