如何限制用户删除不是他们的帖子?

时间:2019-03-07 00:48:15

标签: ruby-on-rails ruby

因此,我正在按照本教程https://medium.com/@deallen7/how-to-build-a-reddit-like-site-with-ruby-on-rails-7b6cd106463d进行操作,然后进入添加该内容的部分

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

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

1 个答案:

答案 0 :(得分:1)

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

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基本思想的一种很好的基本方法,但在此处如何进行编码方面存在许多不良做法。我建议寻找更好的材料以供学习。