解释重定向?

时间:2013-02-04 13:49:10

标签: ruby-on-rails-3

这是users_controller.rb

中的方法
def create
    @user = User.new(params[:user])

    if @user.save
      sign_in @user
      flash[:success] = "Welcome to the Sample App!"
      redirect_to @user
    else
      render 'new'
    end
end

这里是代码

redirect_to @user

自动重定向到show动作,有人可以解释一下吗?

1 个答案:

答案 0 :(得分:0)

您成功创建了一个用户。因此,您将通过其新创建的ID重定向到刚刚创建的用户。 Redirect_to表示您正在重定向到其他操作,在本例中为show动作。换句话说,您不再使用创建操作中的@user,而是使用show动作中的@user(User.find(params [:id])。如果您要将redirect_to @user更改为redirect_to @users,那么您将是成功创建后,重定向到用户的索引操作。

如果您想了解更多细节:http://api.rubyonrails.org/classes/ActionController/Base.html

例如:

  

“与索引不同,创建操作不会呈现模板。在执行其主要目的(创建新帖子)之后,它会启动重定向。此重定向通过返回外部”302 Moved“HTTP响应来实现用户使用show或index操作,具体取决于重定向。“