如何使用cancan阻止用户编辑其他用户的个人资料?

问题描述

| 如何设置允许用户仅编辑自己的个人资料的功能?编辑链接放置在自己的显示页面中,如下所示:
<% if can? :update,User %>
  <div class=\"button\">
    <%= link_to \'edit my profile\',edit_user_path(@user) %>
  </div>
<% end %>
该功能当前如下所示:
if user.role == \"author\"
  can :create,Review
  can :update,Review do |review|
    review.try(:user) == user
  end
  can :update,User,:id => user.id
end
我的用户控制器中也有load_and_authorize_resource。 但这是行不通的,该用户(具有作者角色)仍可以查看并使用所有用户显示页面上的编辑按钮。 我在这里做错了什么? 非常感谢您提供的任何帮助!     

解决方法

        应该:
<% if can? :update,@user %>
您需要传递实际的对象实例而不是类。     

相关问答

错误1:Request method ‘DELETE‘ not supported 错误还原:...
错误1:启动docker镜像时报错:Error response from daemon:...
错误1:private field ‘xxx‘ is never assigned 按Alt...
报错如下,通过源不能下载,最后警告pip需升级版本 Requirem...