deviseのメモ書き
はじめに
railsでユーザー管理で欠かすことのできないgemファイルである、devise
関連。
よく忘れがちなので、手順を個人的に控えておこうと思いこの記事をかき始めた。
deviseとは
そもそもdeviseとは、webアプリケーションに認証機能を付け加えるというもの。認証機能というと仰々しいが、単純にいうとログインログアウト機能をつけて、ユーザーを登録したり管理したりするもの、というとわかりやすい気がする。
基本的にwebサービスを作っていくと、ここら辺の機能はつけていきたいと思うところだ。
deviseのインストール
まずはdeviseをインストールしていく。deviseはgemの一種であるため、gemファイルに記述することでインストールが可能となる
gem `devise`
そのあとターミナルにて、gemファイルの更新をする
bundle exec bundle install
これでgemファイルは更新されたため、deviseのインストールの準備が整った状態になっている。
rails g devise:install
これにてdeviseのインストールの完了。
その後の手順
ここからは他にdeviseを用いてどういうことをやったかの一例を示していこうと思う。
viewの導入
deviseで扱うviewをまずは導入していこうと思う。
rails g devise:views
これにて、deviseを用いるときのviewファイルを作成することができた。
この中で特に扱ったファイル群としては、registration
ディレクトリとsession
ディレクトリである。
まずregistration
ディレクトリだが、これはユーザーの登録時のviewをここで管理している。ここでnew
アクション用のviewファイルを作成することで、ユーザーの登録をすることができる。
次にsession
ディレクトリだが、こちらはユーザーのサインインをするために扱うことになる。
userモデルの作成
上記でdeviseを導入できているのだが、次はここからdeviseを用いてユーザーの管理をしていく。この時にまずは、ユーザーモデルの作成をしなければユーザーを登録することができないためユーザーモデルを作成していくのだが、その作成時にユーザーモデルとdeviseを結び付けて作成する。
rails g devise user
このコマンドでuserモデルを作成するとともに、devise機能をつけている。またモデルの作成であるため、この操作によりmigrationファイルが作成される。
この時に約一年前くらいまではこういうことが起きなかったのだが、現在このコマンドでモデルを作成すると一部がコメントアウトされてしまい後ほど実装に困ることになるため、以下の部分のコメントアウトを先に外しておくことを勧めておく。
## Trackable
t.integer :sign_in_count, default: 0, null: false
t.datetime :current_sign_in_at
t.datetime :last_sign_in_at
t.string :current_sign_in_ip
t.string :last_sign_in_ip
ここはログイン情報を担っており、ログイン時間などの情報などを格納するようにしている。このTrackable
の部分がデフォルトではコメントアウトされているためここを先にコメントアウトを外しておくべきかなと思う。
その他任意の部分を編集した後、migrationファイルを適用させなければならないためいつものコマンドでmigrationファイルを更新しておく。
bundle exec rake db:migrate
configure_permitted_parameters
基本的に devise はメールアドレス
とパスワード
の設定のみとなっている。
そこで他の要素を追加したい時に、このメソッドを使って追加できるようにする。
application_controller
に下記のように記述する。(下記例ではサインアップ時に名前の登録も追加)
def configure_permitted_parameters
devise_parameter_sanitizer.permit(:sign_up, keys:[:name])
end
そしてこれをbefore_action
で設定すればこのメソッドを呼び出す事ができるので、これも覚えておくと今後の追加要素に適用可能。
まとめ
deviseの導入について今回はまとめさせてもらった。よく使う機能だと思うので、知識的にまとめておけばこれからすぐに使えるようになるのではないのかな。
Author And Source
この問題について(deviseのメモ書き), 我々は、より多くの情報をここで見つけました https://qiita.com/kh_kh/items/1ef675fd5528c3cbcd31著者帰属:元の著者の情報は、元の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 .