devise導入したときのカラムの増やし方
悩み事
devise導入したらデフィルトでemailとpasswordしか入ってないじゃん、、、、
usersテーブルにnameやaddressカラムとかも追加したいのにどうすればいいかわからない!!
ってこと一度はありますよね。
今回はそのお悩み解決いたします!!
1.usersテーブルにカラムを追加
今回はnameカラムを追加してみようと思うので、
以下のようにターミナルでコマンドを実行しましょう。
$ rails g migration AddNameToUsers name:string
$ rails db:migrate
2.application_controller.rbを編集
application_controller.rbを以下のように編集しましょう。
これでユーザー登録時にnameカラムが保存されるようになります。
app/controllers/application_controller.rb
class ApplicationController < ActionController::Base
before_action :configure_permitted_parameters, if: :devise_controller?
protected
def configure_permitted_parameters
devise_parameter_sanitizer.permit(:sign_up, keys: [:name])
end
end
今の状態でuser情報を登録するとnameカラムも追加されてるしいい感じだ!!
と安堵するのはまだ早いのです。。。
今のままでは登録時にしかnameカラムが入っていないので、編集でnameを変更しても変更されません。
不完全な状態です。
3.完全感覚dreamer
じゃあ編集時に追加したカラムの編集もしっかりとできるようにしましょう!
とはいえとても簡単です。
app/controllers/application_controller.rb
class ApplicationController < ActionController::Base
before_action :configure_permitted_parameters, if: :devise_controller?
protected
def configure_permitted_parameters
devise_parameter_sanitizer.permit(:sign_up, keys: [:name])
<!-- 以下のように編集時の対応する記述も追加してあげましょう -->
devise_parameter_sanitizer.permit(:account_update, keys: [:name])
end
end
これでバッチリです!!
以上!
Author And Source
この問題について(devise導入したときのカラムの増やし方), 我々は、より多くの情報をここで見つけました https://qiita.com/Yu-8chan/items/1b2d315b0c7da62b2487著者帰属:元の著者の情報は、元のURLに含まれています。著作権は原作者に属する。
Content is automatically searched and collected through network algorithms . If there is a violation . Please contact us . We will adjust (correct author information ,or delete content ) as soon as possible .