这是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动作,有人可以解释一下吗?
答案 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操作,具体取决于重定向。“