Railsでログイン・ログアウト・新規登録を最速実装!Devise基本機能の使い方【初心者向け完全ガイド】
生徒
「Railsでログイン機能を作りたいんですが、何から始めればいいですか?」
先生
「RailsではDeviseという仕組みを使うと、ログインや新規登録をとても速く作れます。」
生徒
「プログラミング未経験でもできますか?」
先生
「大丈夫です。鍵付きの玄関を設置する感覚で、順番に進めれば理解できます。」
1. Railsの基本・概要(Railsとは何か)
Railsは、Webアプリを作るための道具箱です。ログイン機能は「会員制サイトの入口」にあたります。 Deviseは、その入口に自動ドアと鍵を一気に取り付けてくれる便利な部品です。 Railsでは決まった配置や名前を使うことで、少ない作業で動く仕組みが整います。
2. 開発環境とインストール(RubyとDevise準備)
まずはRailsが動く環境を用意します。RubyはRailsの言語で、Bundlerは部品管理係です。 Deviseは部品なので、Gemfileに追加します。
gem 'devise'
この一行は「認証機能セットを使います」とRailsに伝える合図です。
3. プロジェクト作成と構成(Devise初期設定)
Railsプロジェクトは家の設計図のようなものです。作成後、Deviseを初期化します。
rails generate devise:install
この操作で、ログインに必要な設定ファイルや案内文が自動で用意されます。
4. ルーティング入門(ログインURLの仕組み)
ルーティングは「住所と行き先の対応表」です。Deviseは自動でログイン用の住所を作ります。
devise_for :users
この一文で、ログイン・ログアウト・新規登録の道が全部つながります。
5. コントローラ基礎(ログイン処理の裏側)
コントローラは受付係です。Deviseでは自分で書かなくても、受付業務を代行してくれます。 ログイン時は、入力されたメールとパスワードを確認します。
before_action :authenticate_user!
これは「ログインしていない人は入れません」という門番の役割です。
6. ビューとテンプレート(ログイン画面)
ビューは見た目部分です。Deviseは最初から画面を用意していますが、確認もできます。
<h2>ログイン</h2>
<form>
メールアドレスとパスワードを入力します
</form>
この画面が、会員専用サイトの入口になります。
7. モデルとActive Record基礎(Userモデル)
モデルはデータ保管箱です。DeviseはUserモデルを作り、パスワードを安全に保存します。
rails generate devise User
これで、ユーザー情報を管理する箱が完成します。
8. マイグレーションとスキーマ設計(認証情報保存)
マイグレーションは棚作りです。メールや暗号化パスワードを置く棚を作ります。
t.string :email
t.string :encrypted_password
鍵そのものではなく、鍵の写しを安全に保管する仕組みです。
9. バリデーションとコールバック(入力チェック)
バリデーションは入力ミス防止柵です。Deviseは空欄や重複を自動で防ぎます。
validates :email, presence: true
これで、メール未入力の登録を防げます。
10. アソシエーション(ログイン状態の利用)
ログイン後は「誰が使っているか」をアプリが覚えます。
current_user
この一言で、今ログイン中の人を呼び出せます。