The finished signup form

現在如果填寫有效的資料,按送出之後,會得到下面的錯誤訊息:

因為 Rails 預設會渲染跟 action 相對應的 view,但 create action 並不會對應到 view。 註冊成功之後,不需要渲染頁面,而是要重新導向到另一個頁面。按照慣例,要導向到使用者的個人資料頁面,不過要直接導回首頁(root_path)也是可以。

繼續完成 create action 的程式碼,使用 redirect_to 方法導向頁面:

app/controllers/users_controller.rb

class UsersController < ApplicationController
  .
  .
  .
  def create
    @user = User.new(user_params)
    if @user.save
      redirect_to @user
    else
      render 'new'
    end
  end

  private

    def user_params
      params.require(:user).permit(:name, :email, :password,
                                   :password_confirmation)
    end
end

其中:

redirect_to @user

其實就等於:

redirect_to user_url(@user)

因為 Rails 看到 redirect_to @user 就知道我們要導向到 user_url(@user)