SNSでシェアする

Railsで簡単にログイン機能を実装!「devise」の導入まとめ

SNSでシェアする

スポンサーリンク
 
是非購読クリックお願いします☆

68747470733a2f2f7261772e6769746875622e636f6d2f706c617461666f726d617465632f6465766973652f6d61737465722f6465766973652e706e67

Railsでログイン機能を実装したいときはgemの「devise」を導入するのがとても便利ですよね。

ログイン機能周りをこの「devise」でほとんどカバーできるので皆さんよく使うgemの一つなのではないでしょうか。

ただ他のgemと違って「bundle install」のみでサクッと導入できるわけではなく、色々やることがあったので自分が導入した時の流れを簡単にメモしておきます。

動作環境

Rails 4.2.0

「devise」の初期設定とインストールの流れ

まずはRailsプロジェクト内にあるGemfileに「devise」を追加記入する。

そして、gemをインストール。

「devise」の設定ファイルを生成する。

ターミナルに以下の内容が表示される。
※これには手動で行うべき設定が表示されているので必要に応じて設定が必要。

「$ rails g devise:install」をしたことによって以下の2つのファイルが新規で生成される。

*1 config/initializers/devise.rb

*2 config/locales/devise.en.yml

rails g devise:views」コマンドでビューファイル群を生成

「devise」はgemをインストールしただけで、ログイン画面や新規登録画面が用意されるが、オリジナルでHTMLをカスタマイズして使うケースが多いためビューファイル群を生成します。

「$ rails g devise:views」をしたことによって以下の10個のファイルが新規で生成される。

  • app/views/devise/mailer/confirmation_instructions.html.erb
  • app/views/devise/mailer/reset_password_instructions.html.erb
  • app/views/devise/mailer/unlock_instructions.html.erb
  • app/views/devise/passwords/edit.html.erb
  • app/views/devise/passwords/new.html.erb
  • app/views/devise/registrations/edit.html.erb
  • app/views/devise/registrations/new.html.erb
  • app/views/devise/sessions/new.html.erb
  • app/views/devise/shared/_links.html.erb
  • app/views/devise/unlocks/new.html.erb

ログインのためのモデルを生成

rails g devise モデル名」はログインに紐付いたモデルの生成とルーティングの追加を行ってくれるdeviseのコマンドです。

「$ rails g devise モデル名」をしたことによって以下の4つのファイルが新規で生成される。
※ここでのモデル名はuserです。

  • app/models/user.rb
  • db/migrate/201xxxxxxxxx_devise_create_users.rb
  • test/fixtures/users.yml
  • test/models/user_test.rb

さらに「$ rails g devise モデル名」をしたことによって更新されるファイル

  • config/routes.rb

「config/routes.rb」を見ると以下の2行目の様な記述が追記されている。

※「devise_for」はログインまわりに必要なルーティングを一気に生成してくれるdeviseのメソッド

「rake routes」でルーティングを確認する。

「devise_for :users」が記述されたことで以下のようにログイン周りで必要なルーティングが生成されていることが確認できる。

上記のようになっていれば、ルーティングも大丈夫です。

これで「devise」の導入自体はできました。

まだ他にも必要に応じて設定しなくてはいけないことはありますが、導入という部分ではここまでで大まかには大丈夫です。

もろもろ設定が終われば、、、

するのを忘れずにしましょう。

また、gem「devise」はサーバーの再起動が必要ですのでお忘れなく。

でサーバーをシャットダウンし、

でサーバーを立て直すことでちゃんとgem「devise」が反映されます。

上記以外で「devise」で設定すること

メール認証する場合(必要であれば設定)

「devise」ではメール認証機能も簡単に実装することができます。
※ユーザーの新規登録の際などに認証メールを自動でユーザーに送り、ユーザーがメール本文にある認証リンクで認証する仕組み。

上記についてはまたの機会に追記します。

他にもカスタマイズ方法などを追記していきます。

*1:deviseに関する設定が記述されていて初期設定やカスタマイズする際に編集するファイル

*2:バリデーション時のエラーメッセージなどが設定されている

スポンサーリンク
スポンサーリンク