deviseを使用してサインアップ時にニックネームを登録できるようにする

手順


①usersテーブルに「nickname」カラムを追加する

$ rails g migration AddNicknameToUsers nickname:string

AddNicknameToUsersの意味

このように複数の単語が含まれた書き方をキャメルケースと言います。

逆にアンダーバーを使った書き方もあり、それをスネークケースと言います。(sample_hoge_huga)

コマンドでのそれぞれの単語の意味は以下のようになります。

  • rails g migration => マイグレーションファイル作成
  • Add => カラムを追加する
  • Nickname => カラム名
  • ToUsers => usersテーブルへ追加
  • nickname:string => カラムのデータ型(string)

②マイグレートでテーブルに反映させる

$ rails db:migrate

③deviseを使用してパラメータを受け取るコードを記述

  before_action :configure_permitted_parameters, if: :devise_controller?
  
  def configure_permitted_parameters
    devise_parameter_sanitizer.permit(:sign_up, keys: [:nickname])
  end

上の記述はdeviseでサインアップ(新規登録)する際に「nickname」のような新しく追加したカラムに保存の許可を与える為の記述です。

なぜこのような記述が必要なのかと言うと、deviseを使って保存の許可をしている部分はメールアドレスとパスワードのみだからです。

④「nickname」の入力文字数を制限する

ニックネームの登録文字数を制限するやり方も紹介します。

<div class="field">
   <%= f.label :nickname %> <em>(6 characters maximum)</em><br />
   <%= f.text_field :nickname, autofocus: true, maxlength: "6" %>
</div>

3行目で文字数の制限を行っています。

コメント

タイトルとURLをコピーしました