前提・実現したいこと
RailsにてProgateのような簡単なsnsを作っています。ユーザー登録をし、その後登録画面を表示したいのですがエラーが出てしまいます。
発生している問題・エラーメッセージ
Routing Error No route matches [GET] "/users"
該当のソースコード
new.html.erbにおけるcreateのredirect_toがうまく機能していないものと思われます。
class UsersController < ApplicationController def index @user = User.all.order(created_at: :desc) end def create @user = User.new(id: params[:id],name: params[:name], email: params[:email]) @user.save redirect_to("/users/#{@user.id}") end def show @user = User.find_by(id: params[:id]) end def new @user = User.new end end
<%= form_tag("/users/create") do %> <p>ユーザー名</p> <input name="name"> <p>メールアドレス</p> <input name="email"> <input type="submit" value="登録"> <% end %>
Rails.application.routes.draw do get 'users/index' get '/'=> "home#top" get 'posts/index' => "posts#index" get "posts/new" =>"posts#new" post"posts/create" => "posts#create" get"posts/:id" => "posts#show" get"posts/:id/edit" =>"posts#edit" post"posts/:id/update" =>"posts#update" post"posts/:id/destroy" =>"posts#destroy" get "users/index"=>"users#index" get"users/new" =>"users#new" post"users/create" => "users#create" get"users/:id" =>"users#show" get"users/new" => "users#new" end
試したこと
redirect_toの中身を"/users/#{@user.id}"から"/users/indexに変えたところindex.html.erbは表示できました。
回答1件
あなたの回答
tips
プレビュー