尝试删除标签时出现ID错误

时间:2016-06-27 12:24:03

标签: ruby-on-rails

我对ruby on rails非常新,我正在按照教程设置一个简单的博客风格网站。我在文章上实现了标签,但现在我在尝试实现删除标签时遇到错误。我认为这是错误的来源。

def destroy

@tag = Tag.find(params[:id])
@tag.destroy

flash.notice = "Tag '#{@tag.name}' Deleted!"

redirect_to action: "index"

end

我认为这是@tag = Tag.find(params [:id])行导致以下错误:

无法找到标记为'id'=#<标签:: ActiveRecord_Relation:0x007fdd2c016ba0>

我坚持这个,因为我设法以这种方式删除文章,所以我不确定为什么这不起作用。

编辑: 这是视图文件。

<h1>All Tags</h1>

<ul id="tags">
   <% @tag.each do |tag| %>
   <li>
    <%= link_to tag.name, tag_path(tag) %>

    <%= link_to "delete", tag_path(@tag), method: :delete, data: {confirm: "Really delete the tag?"} %>

  </li>
  <% end %>
</ul>

2 个答案:

答案 0 :(得分:1)

您需要在视图中的tag_path方法中传递标记变量而不是@tag变量。

 <%= link_to "delete", tag_path(tag), method: :delete, data: {confirm: "Really delete the tag?"} %>

答案 1 :(得分:0)

@tag更改为传递数组的tag而不是单个值..

<ul id="tags">
   <% @tag.each do |tag| %>
   <li>
    <%= link_to tag.name, tag_path(tag) %>

    <%= link_to "delete", tag_path(tag), method: :delete, data: {confirm: "Really delete the tag?"} %>

  </li>
  <% end %>
</ul>