Railsでログイン、ユーザー登録機能を実装!gem「devise」の使い方

ログイン機能を簡単に実装できるRailsのgem「devise」を紹介します。

Rails勉強中
セキュリティやら何やらで何かと面倒なログイン機能を簡単に実装でき人気です。

deviseの使い方を知りたい、Railsにくわしくなりたい方は参考にしてください。

Rails勉強中
結論、deviseは数行でログイン機能を導入でき便利です。

自分に合う仕事や求人などは以下の診断とサイトでチェックしましょう

\ 高待遇な人気求人を知る /

type転職エージェント

まずインストール

まずは、gemをいれる。

gem install devise
bundle install

ジェネレーターを起動。

rails g devise:install
rails generate devise モデル名

モデル名は、自分が適用したい名前を入れて下さい。
会員登録に使われることが多いので、たいていは User が使われる。

スポンサーリンク

生成されたものを見てみる

deviseというrailsのgemを使えば、ログイン、新規登録機能を簡単に実装できる
:confirmable はメール送信による認証です。不要な場合は省略して下さい。

その他オプションについては、こちらを参考に。

メール送信の場合は、config / environments / development.rb も編集しておきましょう。
こちらを追加。

deviseというrailsのgemを使えば、ログイン、新規登録機能を簡単に実装できる

モデルについてみて見ると、こんな感じでマイグレートファイルが生成されている。(一部のみ掲載)
deviseというrailsのgemを使えば、ログイン、新規登録機能を簡単に実装できる

スポンサーリンク

ルーティング設定

こちらを追加。

devise_for :users

あとは、ログイン後のリダイレクト用に、rootも追加。

root 'home#index' #ここは自分のrootパスを

私の場合、home#index をrootにしたので、これのためにcontrollerをつくりました。

rails g controller home index

あとは好きなように views/home/index.html.erb や controller を編集して下さい。

rake db:migrate

も忘れずに!

ユーザー認証を導入

ユーザー認証を導入するために、各コントローラーに

before_filter :authenticate_user!

を追加。

これで、ログインしていないユーザーのアクセスをはじくことができる。

noticeを表示させる

ログイン失敗などのアラートを表示させるためにviewを編集しましょう。
app/views/layouts/application.html.erb に

<p class="notice"><%= notice %></p>
      <p class="alert"><%= alert %></p>

を追加。

ログイン、新規登録機能は完成

deviseというrailsのgemを使えば、ログイン、新規登録機能を簡単に実装できる
こんな風に適当な(登録されていない)メールアドレスを入力すると、

deviseというrailsのgemを使えば、ログイン、新規登録機能を簡単に実装できる

有効なやつを入力して下さいと注意されます。

さらに、ログインしていない状態でURLにアクセスしようとすると、
deviseというrailsのgemを使えば、ログイン、新規登録機能を簡単に実装できる
ログイン、または新規登録する必要があります。という警告が。

ログインユーザーの情報にアクセス

ログインユーザーの情報を取得したい場合は、

current_user

を使いましょう。
current_ のあとには、モデル名がきます。
例えば、devise g でmemberを作成している場合は、

current_member

で取得することができます。

例えば、ログインユーザーのidを取得したい場合は、

current_user.id

でidを取得することができます。

Railsで便利!gemのdeviseまとめ

数行書くだけでこんなに立派なログイン機能を実装することができました。すばらしいですね。

RailsでWebサービスをつくる際は、ぜひdeviseを利用してみて下さい。

\ 高待遇な人気求人を知る /

type転職エージェント

いつもシェア感謝です!今回もぜひ

※ 微妙だったら、そっと閉じるか、ほかの記事を見ていただけるとうれしいです!

SNSでも自分の得意なことで収入を得る方法を発信しています。フォローすれば更新をチェックできますので、ぜひフォローを。
仕事依頼などのお問い合わせは「iwgp545@yahoo.co.jp」か、「TwitterのDM」、「Facebookのメッセージ」からお願いします。