当我使用方法'销毁'给我一个错误
Couldn't find Post with 'id'=#<Post::ActiveRecord_Relation:0x000000045e14c0>
方法销毁
def destroy
@post = Post.find(params[:id])
@post.destroy
redirect_to posts_path
end
视图
<%= link_to 'Destroy', post_path(@posts),
method: :delete,
data: { confirm: 'Are you sure?' } %>
抱歉我的英文不好
答案 0 :(得分:2)
您将@posts
变量定义为ActiveRecord :: Relation(某种模型数组,使用@posts = Post.all
或类似内容定义)。要解决您的问题,如果您在索引网址中有link_to调用,那么很可能您正在执行以下操作:
<% @posts.each do |post| %>
# link_to call somewhere here
<% end %>
然后您必须将link_to调用更改为
<%= link_to 'Destroy', post_path(post),
method: :delete,
data: { confirm: 'Are you sure?' } %>
注意我们使用.each do | var |中定义的变量阻止,这里是post