当您在Ruby on Rails中'redirect_to'实例变量时会发生什么?

时间:2010-10-16 18:52:22

标签: ruby-on-rails

我正在深入研究RoR,当我浏览教程,脚手架和文档时,我遇到了一些令我困惑的代码。例如,我刚刚阅读了'redirect_to'方法,但我读到的指南并没有涵盖重定向到实例var的示例,例如在典型的脚手架中生成的代码......

# POST /articles
  # POST /articles.xml
  def create
    @article = Article.new(params[:article])

    respond_to do |format|
      if @article.save
        format.html { redirect_to(@article, :notice => 'Article was successfully created.') }
        format.xml  { render :xml => @article, :status => :created, :location => @article }
      else
        format.html { render :action => "new" }
        format.xml  { render :xml => @article.errors, :status => :unprocessable_entity }
      end
    end
  end

在语句format.html { redirect_to(@article, :notice => 'Article was successfully created.') }中,代码重定向到实例var article,这会导致当前控制器中的{redirect_to'show方法。为什么这会导致它重定向到show方法?

非常感谢你的帮助!

1 个答案:

答案 0 :(得分:3)

为什么这会导致它重定向到show方法?
因为如果你没有指定特定的动作,Rails假定你想要'显示'对象。如果您还有其他行动,请尝试

redirect_to :action => :do_something, :id => @article