この項目では、Deviseのインストール方法やgem・deviseについて学びます。まずは、create-userという新しいブランチを作成しましょう。
$ git checkout -b create-user
ユーザーのログイン機能を実装するのは大変なのでDeviseというGemを使用します。Railsでは多く使用されていて信頼性も高いGemです。
https://github.com/plataformatec/devise
便利機能をかんたんに使えるようにしてくれる、Rubyが提供する仕組みをgemといいます。例えばgemには以下のようなものがあります。
ログイン機能 => Devise
画像アップロード => Carrier Wave
ページネーション => Kaminari, will_paginate
また、gemのインストールを行うには、以下のようにgem install gem nameというコマンドを実行します。
$ gem install devise
もしくは、Gemfileにgemを追加して、bundle installというコマンドを実行します。今回は、こちらの方法でインストールを行います。
Gemfileに以下を追加してターミナルでコマンドを実行してください。
gem 'devise'
$ bundle install
$ rails g devise:install
上記コマンドを実行すると、 ファイルが作成されます。また、4つのインストラクションが表示されます。
これらは、Deviseを使用する為に必要なものですので、1つづつ設定していきましょう。ターミナルに表示されている内容は下記の通りです。
create config/initializers/devise.rb
create config/locales/devise.en.yml
1. メールの設定config/environments/development.rb:
config.action_mailer.default_url_options = { host: ' }
2. ルートの設定 config/routes.rb.
For example: root to: "home#index"
3. フラッシュメッセージが受け取れるようにする application.html.erb
<p class="notice"><%= notice %></p>
<p class="alert"><%= alert %></p>
4. 専用のViewを創りたい場合は以下を実行
rails g devise:views
最初にメールの設定をします。サーバーを起動し、ブラウザをたちあげます。次に以下部分をコピーします。
コピーしたものをdevelopment.rbに追加します。
これは、パスワードの再設定メールやアカウントの有効化メールなどを送る時の為の設定です。これらのメール内に、アプリへのリンクを貼り付けるときなどに、正しいURLを取得する為のものです。
development.rb
config.action_mailer.default_url_options = { protocol: 'https',host:'〇〇〇'}
protocolは'https'、host'〇〇'の〇〇の部分は上記の通り、サーバーを起動し、のブラウザのアドレスバーに表示されたhttps://以外の英数字~.comまでをコピーして貼り付けてください。
ルートの設定は2つ目は教程2 ルーティングの設定(リンクをつける)でですでに行っている設定なので、今回は飛ばします。
3つ目では、application.html.erbを編集します。以下、オレンジ色部分を追加して下さい。
<body>
<p class="notice"><%= notice %></p>
<p class="alert"><%= alert %></p>
<%= yield %>
</body>
これは、アラートを表示させる為のものです。
これは後のレッスンでくわしくお伝えするので、今回は何もしなくても大丈夫です。少しだけ先に紹介しておくと以下のコマンドだけで、ログインやサインアップのデザイン画面をカスタマイズするためのファイルを作成してくれます。とても便利ですよ。
rails g devise:views
今回は代表的なGemであるDeviseのインストールからセットアップまで行いました。他にも便利なものがたくさんありますので、ネットでいろいろなGemを調べてみましょう。
検索キーワード例)Rails おすすめ Gem
また、Githubの手順に従ってannotate_modelをインストールしてみて下さい。
https://github.com/ctran/annotate_models
解答例
無料ビデオ講座のお知らせ
Skillhub [スキルハブ]では無料の動画講座を多数公開しています。他校だと数万円するような講座が無料で受講できます。