devise使用しユーザー登録機能実装時にDBに保存されない
解決したいこと
deviseを使用しユーザー登録機能の練習をしているが、
登録しようとした内容がDBへ登録されないです。。。
解決方法を教えて下さい。
該当するソースコード
controllers/applicationcontroller
class ApplicationController < ActionController::Base
before_action :basic_auth
before_action :configure_permitted_parameters, if: :devise_controller?
private
def basic_auth
authenticate_or_request_with_http_basic do |username, password|
username == ENV["BASIC_AUTH_USER"] && password == ENV["BASIC_AUTH_PASSWORD"]
end
end
def configure_permitted_parameters
devise_parameter_sanitizer.permit(:sign_up, keys: [:nickname, :last_name, :first_name, :last_name_kana, :first_name_kana, :birth_date])
end
end
models/user.rb
class User < ApplicationRecord
# Include default devise modules. Others available are:
# :confirmable, :lockable, :timeoutable, :trackable and :omniauthable
devise :database_authenticatable, :registerable,
:recoverable, :rememberable, :validatable
validates :nickname, presence: true
validates :last_name, presence: true
validates :first_name, presence: true
validates :last_name_kana, presence: true
validates :first_name_kana, presence: true
validates :birth_date, presence: true
has_many :items
has_many :order_histories
end
views/devise/registrations/new.html.erb
<%= form_with model: @user, url: user_registration_path, class: 'registration-main', local: true do |f| %>
<div class='form-wrap'>
<div class='form-header'>
<h1 class='form-header-text'>
会員情報入力
</h1>
</div>
<% render 'shared/error_messages', model: f.object %>
<div class="form-group">
<div class='form-text-wrap'>
<label class="form-text">ニックネーム</label>
<span class="indispensable">必須</span>
</div>
<%= f.text_area :nickname, class:"input-default", id:"nickname", placeholder:"例) furima太郎", maxlength:"40" %>
</div>
<div class="form-group">
<div class='form-text-wrap'>
<label class="form-text">メールアドレス</label>
<span class="indispensable">必須</span>
</div>
<%= f.email_field :email, class:"input-default", id:"email", placeholder:"PC・携帯どちらでも可", autofocus: true %>
</div>
<div class="form-group">
<div class='form-text-wrap'>
<label class="form-text">パスワード</label>
<span class="indispensable">必須</span>
</div>
<%= f.password_field :encrypted_password, class:"input-default", id:"encrypted_password", placeholder:"6文字以上の半角英数字" %>
<p class='info-text'>※英字と数字の両方を含めて設定してください</p>
</div>
<div class="form-group">
<div class='form-text-wrap'>
<label class="form-text">パスワード(確認)</label>
<span class="indispensable">必須</span>
</div>
<%= f.password_field :password_confirmation, class:"input-default", id:"password-confirmation", placeholder:"同じパスワードを入力して下さい" %>
</div>
<div class="form-group">
<p class='form-info-header'>
本人確認
</p>
<p class='form-info-text'>
安心・安全にご利用いただくために、お客さまの本人情報の登録にご協力ください。他のお客さまに公開されることはありません。
</p>
</div>
<div class="form-group">
<div class='form-text-wrap'>
<label class="form-text">お名前(全角)</label>
<span class="indispensable">必須</span>
</div>
<div class='input-name-wrap'>
<%= f.text_area :last_name, class:"input-name", id:"last-name", placeholder:"例) 山田" %>
<%= f.text_area :first_name, class:"input-name", id:"first-name", placeholder:"例) 陸太郎" %>
</div>
</div>
<div class="form-group">
<div class='form-text-wrap'>
<label class="form-text">お名前カナ(全角)</label>
<span class="indispensable">必須</span>
</div>
<div class='input-name-wrap'>
<%= f.text_area :last_name_kana, class:"input-name", id:"last-name-kana", placeholder:"例) ヤマダ" %>
<%= f.text_area :first_name_kana, class:"input-name", id:"first-name-kana", placeholder:"例) リクタロウ" %>
</div>
</div>
<div class="form-group">
<div class='form-text-wrap'>
<label class="form-text">生年月日</label>
<span class="indispensable">必須</span>
</div>
<div class='input-birth-wrap'>
<%= raw sprintf(
f.date_select(
:birth_date,
class:'select-birth',
id:"birth-date",
use_month_numbers: true,
prompt:'--',
start_year: 1930,
end_year: (Time.now.year - 5),
date_separator: '%s'),
"<p> 年 </p>", "<p> 月 </p>") + "<p> 日 </p>" %>
</div>
<p class='info-text'>※ 本人情報は正しく入力してください。会員登録後、修正するにはお時間を頂く場合があります。</p>
</div>
<div class="form-group">
<h2 class='form-bottom-text'>
「会員登録」のボタンを押すことにより、
<span>利用規約</span>
<br>に同意したものとみなします
</h2>
</div>
<div class='register-btn'>
<%= f.submit "会員登録" ,class:"register-red-btn" %>
</div>
<p class='register-info'>本人情報の登録について</p>
</div>
<% end %>
自分で試したこと
マイグレート実施済み、
devise_parameter_sanitizerの記述確認
他ネットで調べて確認しましたがうまく動作せずです。。
よろしくお願いいたします。
0 likes