2013-03-22 2 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'), то' пост 'variable больше не определена. – MrTheWalrus

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 
Смежные вопросы