我正在尝试在下拉菜单中编写一个if语句,当单击时,将显示选项" delete"和"编辑"对于拥有该帖子的用户。虽然它会显示选项"报告帖子"和"阻止用户"对于所有其他用户。
我将此添加到我的帖子控制器,它可以正常工作。
def destroy
@post = Post.find(params[:id])
if current_user == @post.user
@post.destroy
end
redirect_to root_path
end
我在下拉列表中创建了这个if语句,但它无法正常工作。我试图删除我自己发布的帖子"报告帖子",然后我尝试删除其他用户的帖子,但仍然看到"报告帖子"。它假设向我展示"删除"当我试图删除自己的帖子时。
<ul>
<% if current_user == @post.user %>
<li><%= link_to 'Delete post', post, :method => :delete %></li>
<% else %>
<li><a href"#">Report post</a></li>
<% end %>
</ul>
答案 0 :(得分:1)
你在这里有错误:
<li><%= link_to 'Delete post', post, :method => :delete %></li>
你需要:
<li><%= link_to 'Delete post', @post, :method => :delete %></li>
或在这里:
<% if current_user == @post.user %>
你需要:
<% if current_user == post.user %>