【プログラミング初心者向け】 Railsのログインシステムを理解する
みなさんはログインがどのような仕組みでできているか知っていますか?私はいつも不思議に思っていました。そもそもWEBサービスの仕組みが全くわからなかったのですが特にログイン機能はプログラミング七不思議の一つでした。この記事を読むことで簡単にログイン機能を作成することができ、理解ができるようになります。
【今回の開発環境】
- Windows10 (ローカル環境)
- Ruby on Rails ver.5.2.6
もくじ
今回使うDeviseとは
Gemの一つでGemとは、パッケージ化されたライブラリーでGemコマンドにより簡単に使用できます。
大半のライブラリーはGitHubから組み込むのですが、ダウンロードをするようなことでなくDeviseを使うことで簡単にログイン機能が作成できます。
今回使った認証などは一から作ると大変です。Progetaでログイン機能を作成したのですが理解するのが困難でした。 DeviseというGemを使用することで、メールアドレスとパスワードでログイン機能を実装することができます。
今回は以下の動画を参考にしました。
次の11の手順で実装します。
1.Gemファイルに記述。
Ruby on Railsでアプリケーションを作成するとそのアプリのファイルが生成されるので その中からgemファイルを探し gem ‘devise’ と記述します。
![](https://papael14.com/wp-content/uploads/2021/05/1gem-300x47.jpg)
gem 'devise'
2.bundle installを実行。
gemファイルに書いただけですとインストールされませんのでコマンドプロンプトでbundle install を実行することでDviseが読み込まれます。これでこれでDeviseが使えるようになりました。
![](https://papael14.com/wp-content/uploads/2021/05/d1eec76d9198883e1f2588bb5f2a5ad9-300x27.jpg)
>bundle install
3.Devise自体をインストール 。
コマンドプロンプトで rails generate devise:install を実行します。こうすることで内部に組み込まれます。
![](https://papael14.com/wp-content/uploads/2021/05/3devise_install-300x17.jpg)
>rails generate devise:install
すると、次にすることが書いてあります。
![](https://papael14.com/wp-content/uploads/2021/05/26baf9097a5a3dc3b69caf1d211d68be-300x211.jpg)
英語ですが以下のとおりに実行していけば大丈夫です。
4.1つ目はデフォルトURLの決定。
Config\enviroments\development.rb ファイルに以下を追加する。
![](https://papael14.com/wp-content/uploads/2021/05/5config_dev-300x68.jpg)
>config.action_mailer.default_url_options={host: ‘localhost:3000’}
5.2つ目はルートが設定されていなければRoutesを設定。
6.3つ目はapplication.html.erbに”notice”,”alert”の記述 。
これがあると、ログインした時に成功しました、失敗しましたとメッセージを返してくれます。
<body>の下に挿入します。
![](https://papael14.com/wp-content/uploads/2021/05/f5632d4b65b81e142a2672de499aa9c6-300x86.jpg)
<p class= "notice"><%= notice %></p>
<p class= "alert"><%= alert %></p>
7.4つ目はビューの作成。
ビューがまだできていなので作成します。ビューはログインのフォームをカスタマイズできます。ビューの中にDeviseフォルダーができ、その中に生成されます。
![](https://papael14.com/wp-content/uploads/2021/05/8078320b59bf7d85d06a350e8a34b74d-300x29.jpg)
>rails g devise:views
8.userモデルを作成。
認証はユーザ毎に行いますのでユーザモデルが必要です。user のデータベースを作成します。
![](https://papael14.com/wp-content/uploads/2021/05/fdb34229c2252aa33e1cf1b10fee8f0a-1-300x30.jpg)
migrateして組み込みます。
![](https://papael14.com/wp-content/uploads/2021/05/10rake_devise_migrate-1-300x22.jpg)
>rails g devise user
>rake db:migrate
9.最初に表示されるControllerに以下を記述。
![](https://papael14.com/wp-content/uploads/2021/05/11article_contllor-300x64.jpg)
>before_action :authenticate_user!
10.Railsを再起動。
>control+c して
>rails s
11.ブラウザで確認。
http://localhost:3000
ログイン画面が表示されました。
![](https://papael14.com/wp-content/uploads/2021/05/dc55da7c44072cdd61802153d4af8aed-300x268.jpg)
まとめ
- ログイン機能は、DeviseというGemを使うと簡単に実装できます。
- 実際に実装することでログイン機能の仕組が理解できます。