Devise ユーザーネームとパスワードでログインしたい


deviseでは、最初の状態だと、メールアドレスとパスワードでログインするようになっているので、ユーザーネームとパスワードでログインできるように変更したい。

すでにdeviseはインストールされていることが前提

Userテーブルを作成する。

rails g devise users
で作成する。

Userテーブルが作成されたねー

ユーザーネームを収納するカラムを作成する。

deviseが用意したテーブルにはユーザーネームを収納するカラムがない!
ので、カラムを作成する。

ターミナルで、
rails g migration AddUsernameToUsers name_string

実行。
新しいカラムを作る時に、最初の文字は大文字にするって教えられたけど、アンダーバーでも良さそう。よくわかりません。

そして

rails db:migrate

ユーザーネームのカラムができましたねー

application_controllerに書き加える。

deviseで用意されたコントローラーは、直接修正することができないので、ユーザーネームを追加したよってことをapplication_controllerに書き加えなければいけない。

before_action :configure_permitted_parameters, if: :devise_controller?

これは、actionが実行される前に、configure_permitted_parametersが実行されるよ、ってこと

それでこの後に、
configure_permitted_parameters
を定義する。

protected
def configure_permitted_parameters
added_attrs = [ :username]
end
end

これは、usernameのデータ操作していいよって言ってるものです。

これでおっけー!