2017-08-25 12 views
0

私はrailstutorialの章11に従っています。Listing 11.24を終了して、新しいユーザーを作成してroot_urlにリダイレクトして、それは私がlog/development.logだと思います)。RailsチュートリアルCh11 - [POST] "/ signup"と一致するルートがありません

routes.rbに入力ミスがありましたが、貼り付けたコピーをコピーしてサーバーを再起動してもエラーが発生します。私はポスト '/サインアップ'ルートもそこには表示されません。 routes.rbの最新版はListing 11.1

この問題を解決する方法はありますか?

答えて

1

ので、エラーが正しい何POST /signupありません

あなたは11.24で慎重に見た場合、あなたはそれがusers_path、最初のテストケース用などに投稿が表示されます。:

post users_path, params: { user: { name: "", 
            email: "[email protected]", 
            password:    "foo", 
            password_confirmation: "bar" } } 

users_pathUserController#createによって定義POST /users指すresources :usersによって11.1に定義されて、11.23に示します。

class UsersController < ApplicationController 
    . 
    . 
    . 
    def create 
    @user = User.new(user_params) 
    if @user.save 
     UserMailer.account_activation(@user).deliver_now 
     flash[:info] = "Please check your email to activate your account." 
     redirect_to root_url 
    else 
     render 'new' 
    end 
    end 
    . 
    . 
    . 
end 
+0

あなたは何を言っていますか?チュートリアルでエラーがありますか?どのようにテストが動作し、開発サーバーで私はそのエラーを取得? –

+0

私が言ったように、慎重に '11.24'を見てください。チュートリアルでは' POST/signup'を全く使用しません。私が示したように 'POST/users'を使います。 –

+0

'/ users/new'にフォームを記入すると、'/post/signup'にリダイレクトされます。どうして?そのコードはどこにありますか? –

0

あなたが見ることができるように、あなただけの/サインアップのためのgetルートを持っている(それは自分の情報を入力するようにユーザのためのフォームを提供するためのものです。あなたが作成したので、あなたが不足しているルートが

post '/signup', to: 'users#create' 

です。UsersController内部createアクション

+0

11.1にはデフォルトで 'post'ルートを作成する' resources:users'がありました。 –

+0

はい、あなたのエラーで判断すると 'resources::users'が作成した' POST/signup'ではなく、 'POST/users'ではありません。 – Leito

+1

はい、Markoはこれをやろうとしていますが、リンクしている本はまったく何を言っているのではなく、 'POST/signup'ではなくPOST/usersである' post users_path'をしています。 –

関連する問題