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] Rubyのプログラミングで挫折しない学習方法を動画で公開中

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

まずは、以下コマンドで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を使ったプログラミングを習得できる、オンラインブートキャンプを開催しています。

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

初心者・未経験でもできる。まずはテックアカデミーに相談しよう

プログラミングを独学していて、このように感じた経験はないでしょうか?

  • ・調べてもほしい情報が見つからない
  • ・独学のスキルが実際の業務で通用するのか不安
  • ・目標への学習プランがわからず、迷子になりそう

テックアカデミーでは、このような 学習に不安を抱えている方へ、現役エンジニア講師とマンツーマンで相談できる機会を無料で提供 しています。
30分間、オンラインでどんなことでも質問し放題です。

「受けてよかった」と感じていただけるよう 厳しい試験を通過した講師 があなたの相談に真摯に向き合います。

「ただ気になることを相談したい」
「漠然としているがプロの話を聞いてみたい」

こんな気持ちでも大丈夫です。

無理な勧誘は一切ありません ので、まずはお気軽にご参加ください。
※体験用のカリキュラムも無料で配布いたします。(1週間限定)

今なら参加者限定の割引特典付き! 無料相談を予約する