webアプリケーション開発での質問です。
プログラミング初心者ですm(__)m
railsのログイン機能が機能していません。
rails でログイン機能を実装したのですが、新規登録の際に入力項目を埋めて新規登録を実行すると、エラーが出てしまい、登録することができません....
コマンドプロンプトで「Unpermitted parameters: :name, :password_confirmation」と赤文字でエラーが出ています。
コマンドプロンプトでエラーが出てしまってます。
Processing by Devise::SessionsController#new as HTML Parameters: {"authenticity_token"=>"[FILTERED]", "user"=>{"name"=>"みやしろ", "email"=>"miyashiro1023@gmail.com", "password"=>"[FILTERED]", "password_confirmation"=>"[FILTERED]", "remember_me"=>"0"}, "commit"=>"新規登録"} Unpermitted parameters: :name, :password_confirmation Rendering layout layouts/application.html.erb Rendering users/sessions/new.html.erb within layouts/application Rendered users/sessions/new.html.erb within layouts/application (Duration: 31.3ms | Allocations: 947) [Webpacker] Everything's up-to-date. Nothing to do Rendered layout layouts/application.html.erb (Duration: 95.8ms | Allocations: 6108) Completed 200 OK in 396ms (Views: 104.9ms | ActiveRecord: 0.0ms | Allocations: 7960)
users_controller.rb
class UsersController < ApplicationController def new @user = User.new end def show @user = User.find(params[:id]) @users = User.find(params[:id]).plays.all.order(history: "DESC") @users = @users.page(params[:page]).per(3) end end
###application_controller.rb
class ApplicationController < ActionController::Base before_action :configure_permitted_parameters, if: :devise_controller? protected def configure_permitted_parameters devise_parameter_sanitizer.permit(:sign_up, keys: [:name]) devise_parameter_sanitizer.permit(:account_update, keys: [:name, :profile]) end end
routes.rb
Rails.application.routes.draw do get 'plays/index' get 'plays/new' get 'plays/show' get 'plays/edit' devise_for :users resources :users, only: [:show] resources :plays do resources :comments, only: [:create] end root 'plays#index' end
新規登録のページ(users/registrations/new.html.erb)
<div class="user_main"> <div class="user_main_box"> <div class="box"> <div class="box-inner"> <%= form_for(resource, as: resource_name, url: session_path(resource_name)) do |f| %> <h1>新規登録</h1> <div class="box-email"> <%= f.label :ニックネーム %><br /> <%= f.text_field :name, autofocus: true %> <p><%= f.label :email, "Eメール" %></p> <%= f.email_field :email, autofocus: true, autocomplete: "email" %> </div> <div class="box-password"> <div class="a-row"> <div class="column-left"> <%= f.label :password, "Password" %> <% if @minimum_password_length %> <em>(<%= @minimum_password_length %> characters minimum)</em> <% end %><br /> <%= f.password_field :password, autocomplete: "new-password" %> </div> <div class="field"> <%= f.label :password_confirmation %></br> <%= f.password_field :password_confirmation, autocomplete: "new-password" %> </div> </div> </div> <div class="box-login"> <%= f.submit "新規登録" %> <% if devise_mapping.rememberable? %> <div class="remember"> <%= f.check_box :remember_me %> <%= f.label :remember, "ログインしたままにする" %> </div> <% end %> </div> <% end %> <div class="box-newusr"> <p><span>------------</span> ようこそDuel_Parkへ <span>------------</span></p> <%= link_to "既存アカウントでログイン", new_user_session_path %> </div> </div> </div> </div> </div>
試したこと
コントローラーに何か(nameとpassword_confirmation?)を記載しなければいけないと調べたら出てきたのですが、コントローラーのどこに、どのように記載すればいいかが分かりません。
補足情報(FW/ツールのバージョンなど)
使用言語はhtml.css.ruby on railsです。
HTML5,CSS3,Rails 6.1.4です。
Windows 10 Homeで、バージョンは21H1です。
あなたの回答
tips
プレビュー