オーダーメイドコース
icon
icon

Ruby on Railsでdeviseを使う方法を現役エンジニアが解説【初心者向け】

初心者向けにRuby on Railsでdeviseを使う方法について現役エンジニアが解説しています。deviseとは、RubyのフレームワークRuby on Rails (Rails5)で、ログイン機能の実装を簡単に行ってくれるgemです。deviseでviewとcontrollerを作成し認証機能を作成します。

テックアカデミーマガジンは受講者数No.1のプログラミングスクール「テックアカデミー」が運営。初心者向けにプロが解説した記事を公開中。現役エンジニアの方はこちらをご覧ください。 ※ アンケートモニター提供元:GMOリサーチ株式会社 調査期間:2021年8月12日~8月16日  調査対象:2020年8月以降にプログラミングスクールを受講した18~80歳の男女1,000名  調査手法:インターネット調査

Ruby on Railsでdeviseを使う方法について、TechAcademyのメンター(現役エンジニア)が実際のコードを使用して初心者向けに解説します。

 

Rubyについてそもそもよく分からないという方は、Rubyとは何なのか解説した記事を読むとさらに理解が深まります。

 

なお本記事は、TechAcademyのオンラインブートキャンプ、Ruby講座の内容をもとに紹介しています。
 

田島悠介

今回は、Rubyに関する内容だね!

大石ゆかり

どういう内容でしょうか?

田島悠介

Ruby on Railsでdeviseを使う方法について詳しく説明していくね!

大石ゆかり

お願いします!

 

ログイン認証機能用gemのdeviseとは

deviseとは、rubyのフレームワークRuby on Rails(Rails5)で、ログイン機能の実装を簡単に行ってくれるgemです。

ログイン認証機能というのは、その名の通り、ログイン、ログアウトのことで、ユーザー機能を持つアプリケーションにおいては必須の機能と言えるでしょう。

ログイン機能を追加するためのgemでよければ、他にも種類はありますが、Railsを仕様するにあたって、もっとも簡単で一般的なのがdeviceです。

最低限のセキュリティ機能を持たせたい他に特別な理由がない限りは、基本的にはdevise優先と言って差し支えありません。実際に多くの企業で、多くのSaasアプリケーションで利用されています。

一方でデメリットとしては、カスタマイズ性の難しさが挙げられます。

非常に簡単に導入できるのは間違いありませんが、中身のソースコードを入念に読み込まないことには機能の追加・変更を表面的に行えても、脆弱性が発生しかねません。

特にセキュリティ機能に関しては、実装に綻びがあることで、エンドユーザーの個人情報流出に繋がる恐れがあるため、開発には細心の注意が必要です。
 

deviseの導入と使い方

Gemfileに以下の記述を行います。

gem 'devise'

下記のコマンドにてbundle installを実行します。

$ bundle install

以下のコマンドで、依存するファイル群も一緒に作成できます。

$ rails g devise:install

 

[PR] 未経験からWebエンジニアを目指す方法とは

認証機能の作り方(サンプルコード等)

まずは、以下コマンドでuserモデルを作成。

emailとpasswordは、自動でカラム生成を行ってくれる為、その他に追加したいものがあれば、別途マイグレーションファイルに記述し、マイグレーションを実行します。

$ rails g devise user

以下コマンドで、対応するview画面を一気に作成できます。

rails g devise:views users

最後に以下コマンドで、対応するcontrollerを作成します。

$ rails g devise:controllers users

最低限の実装に関しては以上で完了となりますが、Railsでもっとも一般的なgemだけあって、様々なオプションパッケージがあり、それらを導入することによって、日本語化対応させたり、多様な便利機能を追加することができます。

ぜひ試してみて下さい。
 

筆者プロフィール

メンターSKさん

現在、Webエンジニアとして勤務中。得意なプログラミング言語はRuby、JavaScriptで趣味は筋トレ。

 

大石ゆかり

内容分かりやすくて良かったです!

田島悠介

ゆかりちゃんも分からないことがあったら質問してね!

大石ゆかり

分かりました。ありがとうございます!

TechAcademyでは、初心者でも、Ruby on Railsを使ったプログラミングを習得できる、オンラインブートキャンプを開催しています。

また、現役エンジニアから学べる無料体験も実施しているので、ぜひ参加してみてください。