无法找到' id'

时间:2014-11-12 22:00:25

标签: ruby-on-rails

当我使用方法'销毁'给我一个错误

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?' } %>

抱歉我的英文不好

1 个答案:

答案 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