首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Rails ApplicationController

Rails ApplicationController
EN

Stack Overflow用户
提问于 2014-03-30 10:35:19
回答 2查看 423关注 0票数 0

我正在遵循rails教程(http://tutorials.jumpstartlab.com/projects/blogger.html#blogger-2),创建一个简单的博客。在其中一个练习中,它要求我为我的Articles_Controller实现破坏方法(文章是博客帖子结构的模型)。

我已经实现了delete函数,但是之后,当尝试redirect_to article_path(@article_path)时,它找不到记录(当然,它被删除了)。我想知道如何redirect_to索引页面?

删除一篇文章后,我将得到rails错误页面,并:

代码语言:javascript
复制
error: ActiveRecord::RecordNotFound in ArticlesController#show 

我的应用程序/控制器/文章_控制器. my:

代码语言:javascript
复制
def destroy
  @article = Article.find(params[:id])
  flash.notice = "Article '#{@article.title}' destroyed."
  redirect_to article_path(@article)
  @article.destroy
end

ArticleController#show中定义的方法

代码语言:javascript
复制
def show
  @article = Article.find(params[:id])
end 
EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2014-03-30 10:44:30

可以使用redirect_to articles_path重定向到索引路径。

因此:

代码语言:javascript
复制
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
票数 0
EN

Stack Overflow用户

发布于 2014-03-30 10:50:49

如果要重定向到应用程序的索引页,请执行以下操作。你可以这样做。

代码语言:javascript
复制
def destroy
   @article = Article.find(params[:id])
   @article.destroy
   flash.notice = "Article '#{@article.title}' destroyed"
   redirect_to root_index
end
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/22742925

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档