0

这是 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

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

4

1 回答 1

0

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

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

例如:

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

于 2013-02-04T15:12:45.457 回答