【Ruby on Rails】deviseインストール・導入方法は?

スポンサーリンク

 

こんにちは、エンジニアにょけん(@nyoken_box)です。

Railsでdeviseをインストールする手順について、まとめました。

意外と毎回忘れがちなので、参考にしてみてください。

 

スポンサーリンク

①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フォローしてね!!!

有益な無益をつぶやくよ↓↓↓

にょけん

スポンサーリンク