deviseで、新規登録画面、ログイン画面を実装しました。
その際にnameカラムと、入社何年目かの等級(年齢層?社歴?)を追加するカラムも追加しましたので、備忘録として残します。
カラムの追加
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型で大丈夫なのか。参考にした記事