首页 > 解决方案 > 如何限制用户删除不属于他们的帖子?

问题描述

所以我正在关注本教程https://medium.com/@deallen7/how-to-build-a-reddit-like-site-with-ruby-on-rails-7b6cd106463d并进入了我添加这个的部分

before_filter :authenticate_user!, except: [:index, :show]

到我的链接控制器。我正在使用设计 gem,当没有用户登录时,我不应该能够通过视图销毁帖子,但我可以。上面的代码是否已弃用?

标签: ruby-on-railsruby

解决方案


如果您继续阅读您发布的链接,新版本,您会发现它应该是

before_action :authenticate_user!, except: [:index, :show]

再往下显示在您的视图中添加它:

<% if link.user == current_user %>
    <td><%= link_to 'Edit', edit_link_path(link) %></td>
    <td><%= link_to 'Destroy', link, method: :delete, data: { confirm: 'Are you sure?' } %></td>
<% end %>

但是请记住,如果没有后端权限,熟练的用户可能会破解它。虽然这个例子可能是了解 Rails 基本概念的一个很好的基本方法,但这里有很多关于如何编码的不好的做法。我建议寻找更好的材料来学习。


推荐阅读