删除方法丢失ID错误

时间:2014-04-05 20:08:08

标签: ruby-on-rails ruby methods

我创建了一个简单的删除方法,试图学习其余的路径。无论如何,所以如果我删除显示页面上的帖子它工作正常,但如果我回到索引页面,点击帖子,然后点击删除,它会抛出一个丢失的ID错误,但它仍然删除它无论如何。非常困惑:D

如果需要,我会发布更多代码,但我95%肯定问题就在这里。此外,我无法弄清楚宁静的路线重定向。

我有这个:

redirect_to blog_path(@blog)

这显然不对,所以我回到了我先学习的方式:

def destroy
    @blog = Blog.find(params[:id])
    @blog.destroy
    redirect_to(:action => 'index')
end

1 个答案:

答案 0 :(得分:0)

我假设您在删除博客后想要返回博客列表。

您可以使用重定向到索引路径 redirect_to blogs_path

您可以将destroy方法编码为:

def destroy
  begin
    @blog = Blog.find(params[:id])
    if @blog.destroy
      redirect_to blogs_path, notice: 'Blog destroyed.'
    else
      redirect_to blog_path(@blog), alert: "Blog could not be destroyed."
    end
  rescue ActiveRecord::RecordNotFound
    redirect_to blogs_path, alert: "Blog with id '#{params[:id]}' not found"
  end
end