仅允许登录/当前用户编辑自己的帖子

时间:2017-05-03 01:52:00

标签: ruby-on-rails ruby

我有一个帖子表,用户可以在其中登录应用程序并发布项目。理想情况下,我希望用户只编辑他们的帖子,而不是别人的帖子。到目前为止,我有它,以便用户能够编辑帖子,但也可以编辑其他人。

我认为这需要从index.html.erb文件中修复:

<td><%= review.review %> (<% if current_user%><%= link_to 'Edit', edit_review_path(review)%><%end%>)</td>

1 个答案:

答案 0 :(得分:1)

您可以使用以下内容:

<% if user_signed_in? && current_user.id == @review.user_id %>

这就是说,检查用户是否已经登录,并检查current_user是否是review的所有者,检查current_user ID和id来自此类评论的所有者。

所以你可以尝试:

<td>
  <%= review.review %>
  <% if user_signed_in && current_user.id == review.user_id %>
    <%= link_to 'Edit', edit_review_path(review) %>
  <% end %>
</td>

您还可以创建一种方法,将其用作before_action来检查current_userreview所有者之间的匹配,但我认为该视图&#34;验证&#34;可能就够了。