SHOEISHA iD

※旧SEメンバーシップ会員の方は、同じ登録情報(メールアドレス&パスワード)でログインいただけます

CodeZine編集部では、現場で活躍するデベロッパーをスターにするためのカンファレンス「Developers Summit」や、エンジニアの生きざまをブーストするためのイベント「Developers Boost」など、さまざまなカンファレンスを企画・運営しています。

これだけは押さえておきたい! Rails開発で使えるgemパッケージ/ツール

Railsでユーザー認証機能を実装しよう~定番のgem「devise」活用法(1)

これだけは押さえておきたい! Rails開発で使えるgemパッケージ/ツール 第1回


  • X ポスト
  • このエントリーをはてなブックマークに追加

ユーザー認証機能を実装(1)

 ここからは実際にdeviseを使ってユーザー認証機能を実装していきます。実装するにあたり、Rubyインストール等の環境構築、rails newコマンドでRailsアプリを作成するまでの手順は省略します。開発環境は以下の通りです。

  • macOS High Sierra
  • Ruby 2.5.1
  • Ruby on Rails 5.2.0
  • PostgreSQL 10.3

 なお、開発環境構築手順は過去のCodeZine連載「サンプルコードで学ぶRuby on Rails 5実践入門」の以下記事をご参考ください。Ruby/Railsのバージョンは古いですが、同じ手順で環境構築できます。

実装する機能の概要

 deviseがデフォルトで提供する機能をRailsプロジェクトに導入し、各機能の動作を確認していきます。

 具体的には、まずdeviseが提供するgenerateコマンドでdeviseをRailsプロジェクトにインストールします。その後、generateコマンドの実行結果に示される通り、Railsアプリの動作を定義していきます。最低限の環境が整った時点で、Railsアプリを起動しユーザー登録の動作を確認します。最後にログアウト/ログインの動作確認も行えるように修正していきます。

deviseの基本機能を導入

 開発環境で示した通り、データベースはPostgreSQLを使います。以下のコマンドでRailsアプリを作成した直後を前提としてdeviseのインストールから手順を解説します。

bundle exec rails new . -d postgresql

 まず、deviseをインストールするためにGemfileにdeviseを追記します。

[リスト 1]Gemfile
gem 'devise'

 以下のコマンドでdeviseをインストールします。執筆時点ではdeviseのバージョンは4.4.3がインストールされました。

bundle inst

 deviseがインストールされるとdeviseが提供するgenerateコマンドを使用することができます。以下のコマンドを実行し、deviseの基本機能をRailsアプリにインストールします。

bin/rails g devise:install
Running via Spring preloader in process 19733
      create  config/initializers/devise.rb
      create  config/locales/devise.en.yml
===============================================================================

Some setup you must do manually if you haven't yet:
…(中略)…
===============================================================================

 実行後、deviseの設定ファイルが2つ新規作成され、その後、deviseの各種機能のセットアップ手順について詳細が表示されます。この手順通りにdeviseのセットアップを行っていきましょう。

動作定義用設定ファイルを確認

 deviseのセットアップを開始する前に、作成された2つの設定ファイルを確認します。設定ファイルの役割は以下の通りです。

deviseの設定ファイル
設定ファイル 役割の概要
config/initializers/devise.rb deviseの機能ごとの各種動作定義
config/locales/devise.en.yml 各種メッセージのローカライズファイル

 config/initializers/devise.rbの設定のうち、デフォルトで有効になっているものを中心に以下の通り紹介します。

deviseの設定ファイル
設定項目 デフォルト値 役割
mailer_sender 'please-change-me-at-config-initializers-devise@example.com' パスワードを忘れた場合などの際に送られるメールのfromアドレスを指定
require 'devise/orm/active_record' deviseがサポートするORマッパーを指定。デフォルトではActiveRecordを使用
case_insensitive_keys [:email] 大文字/小文字を区別しないカラム名を指定
strip_whitespace_keys [:email] 空白を除去するカラム名を指定
password_length 6..128 Validatableモジュール用の設定で、パスワードの長さを指定
reset_password_within 6.hours パスワードリセットするためのURLの有効期限を指定

 紹介したもの以外の設定もあります。機能を変更する場合にどの設定を変更するといいかある程度事前に把握しておくことが求められますので、面倒でもどういった設定があるかは一度ざっと目を通しておいた方が良いでしょう。

 また、デフォルトのままでも基本的には動作しますが、環境に合わせて適宜変更してください。ここではひとまずデフォルトのままで進めます。

次のページ
ユーザー認証機能を実装(2)

この記事は参考になりましたか?

  • X ポスト
  • このエントリーをはてなブックマークに追加
これだけは押さえておきたい! Rails開発で使えるgemパッケージ/ツール連載記事一覧

もっと読む

この記事の著者

山田 祥寛(ヤマダ ヨシヒロ)

静岡県榛原町生まれ。一橋大学経済学部卒業後、NECにてシステム企画業務に携わるが、2003年4月に念願かなってフリーライターに転身。Microsoft MVP for Visual Studio and Development Technologies。執筆コミュニティ「WINGSプロジェクト」代表。主な著書に「独習シリーズ(Java・C#・Python・PHP・Ruby・JSP&サーブレットなど)」「速習シリーズ(ASP.NET Core・Vue.js・React・TypeScript・ECMAScript、Laravelなど)」「改訂3版JavaScript本格入門」「これからはじめるReact実践入門」「はじめてのAndroidアプリ開発 Kotlin編 」他、著書多数

※プロフィールは、執筆時点、または直近の記事の寄稿時点での内容です

WINGSプロジェクト 竹馬 力(チクバ ツトム)

WINGSプロジェクトについて> 有限会社 WINGSプロジェクトが運営する、テクニカル執筆コミュニティ(代表 山田...

※プロフィールは、執筆時点、または直近の記事の寄稿時点での内容です

この記事は参考になりましたか?

この記事をシェア

  • X ポスト
  • このエントリーをはてなブックマークに追加
CodeZine(コードジン)
https://codezine.jp/article/detail/10813 2018/05/15 17:59

おすすめ

アクセスランキング

アクセスランキング

イベント

CodeZine編集部では、現場で活躍するデベロッパーをスターにするためのカンファレンス「Developers Summit」や、エンジニアの生きざまをブーストするためのイベント「Developers Boost」など、さまざまなカンファレンスを企画・運営しています。

新規会員登録無料のご案内

  • ・全ての過去記事が閲覧できます
  • ・会員限定メルマガを受信できます

メールバックナンバー

アクセスランキング

アクセスランキング