ユーザー登録機能を作ろうとして、新規登録フォームのページを作ったのですが機能しません。
ルーティングはresourcesで、コントローラーとビューは自分で書いたのですが、どこが間違っているのでしょうか...?
new.html.erb <div class="main user-new"> <h1>新規登録</h1> <div class="form"> <div class="form-body"> <% @user.errors.full_messages.each do |message| %> <div class="form-error"> <%= message %> </div> <%end%> <%= form_with model: @user do |form| %> <div class="field"> <%= form.label :ユーザー名 %> <%= form.text_field :name, placeholder: "ユーザー名" %> </div> <div class="field"> <%= form.label :メールアドレス %> <%= form.text_field :email, placeholder: "メールアドレス" %> </div> <div class="actions"> <%= form.submit "登録" %> </div> <% end %> </div> </div> </div>
users_controller.rb def new @user = User.new end def create @user = User.new(name: params[:name], email: params[:email]) if @user.save flash[:notice]="ユーザー登録が完了しました" redirect_to("/users/#{@user.id}") else render("users/new") end end
ちなみにこのコードの状態でsubmitボタンを押すと、ターミナルに
Started POST "/users" for ::1 at 2021-02-05 18:11:41 +0900
Processing by UsersController#create as JS
Parameters: {"utf8"=>"✓", "authenticity_token"=>"Qg46xiGSdIw8mWnspv9ka3k4y4Uc9t0fc4qg8jUzXjDzKFmqMU87EK1+D+iX7UhQCz5gn2V6BeCro0Kk6JWKcA==", "user"=>{"name"=>"テスト", "email"=>"test@test.com"}, "commit"=>"登録"}
(0.1ms) begin transaction
↳ app/controllers/users_controller.rb:17
User Exists (0.7ms) SELECT 1 AS one FROM "users" WHERE "users"."email" IS NULL LIMIT ? [["LIMIT", 1]]
↳ app/controllers/users_controller.rb:17
(0.1ms) rollback transaction
↳ app/controllers/users_controller.rb:17
Rendering users/new.html.erb within layouts/application
Rendered users/new.html.erb within layouts/application (2.4ms)
Completed 200 OK in 41ms (Views: 33.2ms | ActiveRecord: 0.8ms)
と表示されます。
回答1件
あなたの回答
tips
プレビュー