エンジニア目指すほしこのブログ

エンジニアめざすほしこが学んだことや考えていることをアウトプットするブログです。現在27歳、小売業従事者。『アマゾンエフェクト!: 「究極の顧客戦略」に日本企業はどう立ち向かうか』著者: 鈴木 康弘 を読んでプログラミングに興味を持ちました。

devise使い方まとめ

まず、deviseとは、、、

railsで作ったwebアプリケーションに簡単に認証機能(=ログイン、ログアウト機能)を実装できるgemのこと。

これは今後も使いそうなので、使い方をまとめてみます。

 

① Gemfileに gem 'devise'と追加 → bundle install

② ターミナルにて、 rails g devise:install 

  これでインストールできる!

  そしたら以下のような文が現れる 

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はデフォルトのURLを設定してくださいということ。ひとまずlocalhost:3000にしといてOK。

2はrootを設定してくださいということなので、routes.rbにroot to: 〜〜を書く。

3はflashメッセージ(ログインしましたなど)を表示するためのタグをapplication.html.erbに書きなさいということ。

4はビューをカスタマイズするにはrails g devise:viewsをターミナルで実行しなさいということ→実行したら、app/view/のなかにdeviseフォルダーができるので、ここを編集してビューを作ったらOK

 

③ 以上ができたら、ユーザー管理にはテーブルが必要なのでモデルを作る

  ターミナルでrails g devise モデル名 を実行。

  これができたら、マイグレーションファイルに必要なカラム(およびその型やオプション)を書いてrails db:migrateを実行!

 

わからなくなったらGitHubのREADMEを頑張って読もう。

https://github.com/plataformatec/devise