Ruby on Rails:删除导致nameError的链接

时间:2013-03-22 21:10:41

标签: ruby-on-rails nameerror

我是rails的新手,我正在学习教程。我有相同的代码,但是当我在视图中包含“删除”链接时,我收到了一个N​​ameError。

这是错误

NameError in Posts#index
undefined local variable or method `post' for #<#<Class:0x3a0c9b0>:0x3a0a220>

这是代码

<h1>Blog Posts</h1>
<% @posts.each do |post| %>
<h3><%= link_to post.title,post %></h3>
<p><%= post.body %></p>
<hr>
<% end %>
<%= link_to "Delete", post, :confirm => "Are you sure you want to delete this post?", :method => :delete %>

任何帮助都是适当的

2 个答案:

答案 0 :(得分:1)

试试这个。

    <h1>Blog Posts</h1>
    <% @posts.each do |post| %>
    <h3><%= link_to post.title,post %></h3>
    <p><%= post.body %></p>
    <hr>
   <%= link_to 'Delete', post, method: :delete, data: { confirm: 'Are you sure you want to delete this post?' } %>

    <% end %>

修改更多信息。您的删除链接需要在循环或块内。

答案 1 :(得分:0)

将您的link_to代码更改为此代码:

<h3><%= link_to post.title, post_path(post) %></h3>

也是这个:

<%= link_to "Delete", post_path(post), :confirm => "Are you sure you want to delete this post?", :method => :delete %>

link_to需要一个网址作为第二个参数。

如果您遇到其他错误,请确保您的config/routes.rb

中有下一行
resources :posts