こんにちは、エンジニアにょけん(@nyoken_box)です。
Railsでdeviseをインストールする手順について、まとめました。
意外と毎回忘れがちなので、参考にしてみてください。
Contents
①Gemfileにdeviseのgemを追加
vendor/Gemfile
に、以下ピンク色の部分を記入。
source 'https://rubygems.org' . (中略) . gem 'devise', '3.4.1' . .
②bundle installを実行
ターミナルでbundle install
を実行し、gemファイルを読み込む
$ bundle install
※サーバーを起動していた場合は、再起動しましょう。(サーバー起動時にgemの読み込みが走るため)
③devise関連のファイルをプロジェクトに作成する
以下コマンドを実行しましょう。
$ rails generate devise:install
以下の1.
から5.
の項目が出てきますが、こちらはdevise初期設定のための操作ですね。
=============================================================================== Some setup you must do manually if you haven't yet: 1. Ensure you have defined default url options in your environments files. Here is an example of default_url_options appropriate for a development environment in config/environments/development.rb: config.action_mailer.default_url_options = { host: 'localhost', port: 3000 } In production, :host should be set to the actual host of your application. 2. Ensure you have defined root_url to *something* in your config/routes.rb. For example: root to: "home#index" 3. Ensure you have flash messages in app/views/layouts/application.html.erb. For example: <p class="notice"><%= notice %></p> <p class="alert"><%= alert %></p> 4. If you are deploying on Heroku with Rails 3.2 only, you may want to set: config.assets.initialize_on_precompile = false On config/application.rb forcing your application to not access the DB or load models when precompiling your assets. 5. You can copy Devise views (for customization) to your app by running: rails g devise:views ===============================================================================
ひとつずつ見ていきます。
【項目1】
1. Ensure you have defined default url options in your environments files. Here is an example of default_url_options appropriate for a development environment in config/environments/development.rb: config.action_mailer.default_url_options = { host: 'localhost', port: 3000 }
→config/environments/development.rb
に、ピンク色の1行を追加しましょう。ここでは、サインアップ時のメール送信機能などを実装するための仮処理を行なっています。
【項目2】
2. Ensure you have defined root_url to *something* in your config/routes.rb. For example: root to: "home#index"
→config/routes.rb
にピンク色の部分を追記して、root
の設定を行います。すでにルートを設定している場合は対応不要。
【項目3】
3. Ensure you have flash messages in app/views/layouts/application.html.erb. For example: <p class="notice"><%= notice %></p> <p class="alert"><%= alert %></p>
→app/views/layouts/application.html.erb.
に、ピンク色の2行を追加しましょう。flashメッセージを表示するための設定ですが、Bootstrapなどを導入している場合は別対応が必要です。
【項目4】
4. If you are deploying on Heroku with Rails 3.2 only, you may want to set: config.assets.initialize_on_precompile = false On config/application.rb forcing your application to not access the DB or load models when precompiling your assets.
→使用しているRailsのバージョンが3.2の場合のみ、config/application.rb
に青色の部分を追記しましょう。バージョンがわからない場合は、「rails -v」で確認できます。
【項目5】
5. You can copy Devise views (for customization) to your app by running: rails g devise:views
→deviseにデフォルトで設定されている画面(view)をカスタマイズしたい場合、ピンク色のコマンドを入力しましょう。変更を加えるためのviewファイルを作成してくれます。デフォルトをそのまま使う場合は基本ないと思いますので、実行しておいた方が吉。
Railsへのdevise導入完了後
以上でdeviseの導入は完了です。
カスタマイズ用のviewファイルはapp/views/devise
内に作成されているので、こちらを変更していきましょう。
Twitterフォローしてね!!!
有益な無益をつぶやくよ↓↓↓
にょけん