0

我是 Rails 新手,我正在学习教程。我有相同的代码,但是当我在视图中包含“删除”链接时出现 NameError。

这是错误

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

任何帮助都会得到帮助

4

2 回答 2

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

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

于 2013-03-22T21:13:54.633 回答
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需要一个 URL 作为第二个参数。

如果您遇到其他错误,请确保您的 : 中有下一行config/routes.rb

resources :posts
于 2013-03-22T21:15:03.820 回答