我是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 %>
任何帮助都是适当的
答案 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