定义对Devise用户模型的基于角色的访问

时间:2011-04-23 10:35:56

标签: devise cancan ruby-on-rails-3

有人能指出我的文件吗?

我在Rails3应用程序中使用Devise + CanCan,并设置Ability.rb。

我想限制对编辑/删除用户路径的访问权限,具体取决于用户的角色。通常,Ability.rb类似于:

def initialize(user)        
    if user.role? :moderator
       can :manage, User
    end
end

但是在视图中我正在使用Devise注册路径进行编辑/删除:

<% if can? :update, @user %>
     <%= link_to 'Edit', edit_user_registration_path(@user) %> | 
<% end %>

“can:manage,User”似乎不适用于这些路径,并且无论角色如何,它们都保持隐藏状态。

如果我使用“can:manage,:all”,则主持人用户可以访问这些路径。

因此,“用户”显然不是正确的管理模式。我试过“设计”和“注册”,但没有用。

我应该使用什么价值 - “可以:管理,????” - 我在哪里可以找到解释原因的文件?

感谢您的任何指示!

1 个答案:

答案 0 :(得分:3)

你面临的问题,我在上一个项目中遇到了他们 此链接将为您提供所有答案。

Rails-authentication-with-devise-and-cancan-restful-resources-for-administrators

希望它有所帮助。