2013-03-22 87 views
0

我是新来的rails,我正在学习一个教程。我有相同的代码,但当我在视图中包含“删除”链接时,出现NameError错误。Ruby on 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 %> 

任何帮助appriciated

回答

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

的问题,顺便说一句,是在您关闭块(用'end')时,'后变量不再被定义。 – MrTheWalrus 2013-03-22 21:17:10

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