ユーザー登録時に入力してもらう値を追加する方法
※メールアドレスとパスワードについてはdeviseの導入時にデフォルトで実装されているものとする
※今回はユーザー名を追加で登録するものとする
1)マイグレーションファイルの修正
・【ターミナル】rails db:rollback を実行
・【VScode】
-----db/migrate/2023xxxxxx~_users.rbファイル内-----
t.string :username
--------------------------------------------------------------
を追記
・【ターミナル】rails db:migrate を実行
2)新規登録画面の編集
・【VScode】
-----app/views/devise/registrations/new.html.erbファイル内-----
<div class = "field">
<%= f.label :"ユーザー名" %><br />
<%= f.text_field :username %>
</div>
---------------------------------------------------
3)バリデーションの設定(必要に応じて)
・バリデーションとは指定したカラムが空だとエラーにする設定
・【VScode】
-----app/controllers/application_controller.rbファイル内-----
validates :username, presence:true
------------------------------------------------
を追記
4)コントローラーの修正
・deviseがデフォルトで持っている値以外のデータを保存するときに必要
・【VScode】
------------app/controllers/application_controller.rbファイル内------------
before_action :configure_permitted_parameters, if: :devise_controller?
private
def configure_permitted_parameters
devise_parameter_sanitizer.permit(:sign_up, keys:[:username])
end
-----------------------------------------------------------
を追記
5)ログインしているユーザー名を表示させる
・【VScode】
-----app/views/~/index.html.erbファイル内-----
<%= "#{current_user :username}さん"%>
// ログインしているユーザー名を表示
--------------------------------------