这个' if语句'不正确的?

时间:2016-09-22 18:19:27

标签: ruby-on-rails ruby

我正在尝试在下拉菜单中编写一个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>

1 个答案:

答案 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 %>