我正在关注rails教程(http://tutorials.jumpstartlab.com/projects/blogger.html#blogger-2),制作一个简单的博客。在其中一个练习中,它要求我为我的Articles_Controller实现destroy方法(文章是博客文章结构的模型)。
我已经实现了删除功能,但之后,当尝试重定向到article_path(@article)时,它无法找到记录(当然它已被删除)。我想知道如何重定向到索引页面?
删除文章后,我收到了rails错误页面:
error: ActiveRecord::RecordNotFound in ArticlesController#show
我的app / controllers / articles_controller.rb:
def destroy
@article = Article.find(params[:id])
flash.notice = "Article '#{@article.title}' destroyed."
redirect_to article_path(@article)
@article.destroy
end
ArticleController#show中定义的方法
def show
@article = Article.find(params[:id])
end
答案 0 :(得分:0)
您可以使用重定向到索引路径
redirect_to articles_path
这样:
def destroy
begin
@article = Article.find(params[:id])
if @article.destroy
redirect_to articles_path, notice: "Article '#{@article.title}' destroyed."
else
redirect_to article_path(@article), alert: "Article could not be destroyed."
end
rescue ActiveRecord::RecordNotFound
redirect_to articles_path, alert: "Article with id '#{params[:id]}' not found"
end
end
答案 1 :(得分:0)
如果要重定向到应用程序的索引页面。你可以这样做。
def destroy
@article = Article.find(params[:id])
@article.destroy
flash.notice = "Article '#{@article.title}' destroyed"
redirect_to root_index
end