2013-03-22 85 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