我的用户有很多问题和问题。我试图弄清楚如何只让用户edit/delete/update
提出自己的问题。我正在使用设计用户身份验证,但我只能弄清楚如何隐藏链接,如
<% if user_signed_in? %>
显示这些链接,但我只想让当前用户修改它们(我假设还有一些方法可以访问这些链接以某种方式编辑/更新/删除。
谢谢!
答案 0 :(得分:0)
您可以将问题的用户与当前用户进行比较,并根据以下内容显示链接:
<% if @question.user == current_user %>
# show edit/delete links
这样,只有发布问题的用户才能查看链接并编辑/删除问题。
答案 1 :(得分:0)
我会做miahabdu所写的内容,但随后在控制器中的方法中添加验证。仅仅因为用户无法看到链接,他仍然可以使用编辑/更新/删除URL。隐藏链接只是化妆品。类似的东西:
if question.user == current_user do
.....do stuff
如果没有返回一些禁止的flash消息,说明他们只能编辑,更新,删除自己的消息。
希望它有所帮助!请不要隐藏链接,因为它无法保护用户数据。
答案 2 :(得分:0)
除了已发布的两个答案之外,我建议使用像CanCan这样的宝石,您可以在任何地方进行优雅的验证(至少应在客户端和服务器端进行验证)。
例如
If user.can? :destroy @post
do a barrel roll
end
#Disclaimer: Syntax correctness not ensued.
GL&amp; HF。