a big fish in a small pond

ロードバイク、rails 、料理、写真、ガシェットでお送りします。

そろそろ開発10 deviseの導入

deviseを導入する目的は「ユーザ管理」をする為であり、以下の3つのことを目的とする。

1.ユーザページ作成
2.集計を取りたい
3.ユーザ名をコンテンツ登録時に出したい

捻りも何もない...

1.deviseのgemインストール
gem 'devise', '~>3.0.0rc'
rails4を導入している場合、一応devise3以上を導入することが望ましい、と思う。

2.deviseをアプリにインストール
$ bundle exec rails generate devise:install
すると「あなたが手動でこれやらないと動かないよ」とメッセージが5つ。

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:3000' }

In production, :host should be set to the actual host of your application.

環境毎のconfigファイルに追記してくれ、と言っている。
config/environments/以下にある開発用、本番用、テスト用の.rbファイルの最後尾に追記。

2. Ensure you have defined root_url to *something* in your config/routes.rb.
For example:

root :to => "home#index"

ルートのURLはしっかり入れろよ、ということです。アプリのフロントページになるmodelを#の前に、呼び出すメソッドを#の後に書いておけばOK。

3. Ensure you have flash messages in app/views/layouts/application.html.erb.
For example:

<%= notice %>

<%= alert %>

ログインした後、ページにフィードバックしたいから追記してくれ、と言っています。
app/views/layouts/application.html.erbの以下に素直に追記。


4. If you are deploying Rails 3.1+ on Heroku, 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.

Rails3.1以上でHerokuを使うときはconfig/application.rbに書きなさいと言っているので、
今回はHerokuにお世話になるので、書く。

5. You can copy Devise views (for customization) to your app by running:

rails g devise:views

これはこの通りは無理。管理したいmodel名をviewsに置き換える必要がある。
$ bundle exec rails g devise User
こうすることにする。これでユーザ管理したいModelが出来たので、次はModelの定義をする。