如何使用 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 。
但这不起作用,用户(具有作者角色)仍然可以在所有用户显示页面上看到并使用编辑按钮。
我在这里做错了什么?
非常感谢您的帮助,非常感谢!
How can I set an ability to allow a user to only edit their own profile? The edit link is placed in their own show page like so:
<% if can? :update, User %>
<div class="button">
<%= link_to 'edit my profile', edit_user_path(@user) %>
</div>
<% end %>
The ability currently looks like this:
if user.role == "author"
can :create, Review
can :update, Review do |review|
review.try(:user) == user
end
can :update, User, :id => user.id
end
I have load_and_authorize_resource in the user controller too.
But this doesn't work, the user (with role of author) can still see and use the edit button on all users show pages.
What am I doing wrong here?
Thanks very much for any help its much appreciated!
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
应该是:
您需要传递实际的对象实例而不是类。
Should be:
You need to pass the actual object instance instead of the class.