2
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 3 years have passed since last update.

新規登録・ログイン画面実装① devise 新規登録の項目追加 

Last updated at Posted at 2021-07-31

deviseで、新規登録画面、ログイン画面を実装しました。

その際にnameカラムと、入社何年目かの等級(年齢層?社歴?)を追加するカラムも追加しましたので、備忘録として残します。

スクリーンショット 2021-07-31 9.52.17.png

カラムの追加

class DeviseCreateUsers < ActiveRecord::Migration[5.2]
  def change
    create_table :users do |t|
      ## Database authenticatable
      # メールアドレスでユーザー登録
      t.string :email,              null: false, default: ""
      # パスワードも必須
      t.string :encrypted_password, null: false, default: ""

省略〜〜〜

      t.timestamps null: false
      # 名前を登録してもらう
      t.string:name,null:false
      # 社歴?を登録
      t.string:join_year,null:false
    
省略〜〜〜

まずは保存する用のカラムを追加します。stringで問題ないのか若干不安です。

ApplicationControllerの記述

class ApplicationController < ActionController::Base
  # ユーザー認証などが行われる前に、configure~が実行される
  before_action :configure_permitted_parameters, if: :devise_controller?

  protected

  def configure_permitted_parameters
    # デフォルトにないname/join_yearを追加しているので、それらを許可するよう記載している
    devise_parameter_sanitizer.permit(:sign_up, keys: [:name,:join_year])
  end
end

(:sign_up, keys: [:name,:join_year])にはemailは入りません。デフォルで入ってるようです。

新規登録画面の編集

 <div class="form-group">
    <%= f.label :name,"お名前" %><br />
    <%= f.text_field :name, autofocus: true,class:"form-control" %>
  </div>

デフォルトで入ってるので省略

<div class="form-group">
    <%= f.label :join_year,"クラス" %><br />
    <%= f.select :join_year,[["1年目", "1年目"], ["2年目", "2年目"], ["3年目", "3年目"],["4年目", "4年目"],["5年以上", "5年目"]], include_blank: "選択して下さい",class:"form-control" %>
  </div>

終わり

追々、グレードアップしていきます。 現在の疑問点・・string型で大丈夫なのか。

参考にした記事

2
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
2
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?