質問: "ユーザー登録が完了しました" redirect_to("/users/#{@user.id}") else render("users/new") end end ```
回答: render("URL") とありますが、controllerでの記述ですよね? その場合は URL を書くのではなく、 view の file名(の拡張子を除いた部分)を書きます。 多くの場合は render :new の様に、controller のaction名を書くことが多いですが、それは 例えば new actionでは最後に暗黙の render :new があり、viewの new.html.* を使うようになっているので、action名を書けば良いからです。 で、そのviewは (users_controller で書いているとして) まず views/users を探し、なければ views/application を探します。 ですのでエラーメッセージに`Missing template users/signup, application/signup`と二つのfile名が書かれている次第 「render("users/new")でうまくいく理由」は、それが views/users/new.html.* であると宣言しているからです。 「users/newはURLなのでしょうか?」とありますが "render("users/new") のことですね? でしたら views/users/new.html.* を使ってhtmlを作ってくれ、という意味です。 `get "signup" => "users#new"` は、GET で URL "/signup" をアクセスに来たら、 controllers/users_controller.rb の def new に処理させます という意味でs