0 説明
ユーザー登録、ログイン、承認、ログイン状態維持などのウェブアプリケーションには必須である機能を簡単に実装できるdeviseを触ってみたいと思います。最近Railsを勉強し始めたばかりなので、技術的なこと詳しく書けません。一通りのフローや、どういう理屈でdeviseが動いているのか、理解だけするための記事です。
1 railsのプロジェクトを作る
下記のコマンドでデスクトップにdevise_test
というプロジェクトが作られます。
$ pwd
/Users/hujisawa/desktop
$ rails new devise_test
2 Gemfileに以下を追記
deviseを使うためにgemファイルにdeviseを追加しましょう
gem 'devise'
んで、そのあとにbundle installを実行してライブラリを使えるようにします
bundle install
3 設定ファイルを追加しましょう
下記のコマンドでdevise設定ファイルを作ります。必須です。詳しくはここを参照お願いします
rails g devise:install
4 モデルとマイグレーションを作る
下記のコマンドでdeviseで使われる、モデルやマイグレーションが生成されます。下記のコマンドではUserモデルと、そのためのマイグレーションが作られます。必須です。詳しくはここを参照お願いします
rails g devise User
モジュール追加の編集が終わったらマイグレーションを実行します
rake db:migrate
5 やってみる
railsのウェブサーバーを起動して
rails s -p 3335
下記のurlにアクセスすればデフォルトの登録画面が表示されます
http://localhost:3335/users/sign_up

6 ユーザー登録が完了した

ユーザー登録をしてみたら、実際にユーザーがdbに登録されているのか確認してみましょう
アプリのディレクトリに移動して
$ cd /Users/hujisawa/Desktop/devise_test
$ pwd
/Users/hujisawa/Desktop/devise_test
railsのdbのコンソールを起動して
$ rails dbconsole
既存テーブルを確認してユーザーテーブルが生成されていることを確認して
.tables
selectしてみて、登録されているか確認
select * from users;
//登録されてる
1|a@gmail.com|$2a$11$hD04NGAGdNzsLvyRxRFxBuIwrxn.....
もう一回 http://localhost:3335/users/sign_up
にアクセスしてみればわかると思いますが、http://localhost:3335/
にリダイレクトされますね。これは、 http://localhost:3335/users/sign_up
にアクセスされた時、もう既にユーザーが登録されていて、今は承認済みで、その状態が維持されているので、その場合はルートディレクトリに、リダイレクトされます。
解説
この時点で、ユーザーの登録、そして承認という簡単な流れができました。もし、承認済みユーザーのみアクセスできるページ、承認されてないユーザーでも見れるページ、などを分けたり、どのくらいアクセスしてなくても承認されている時間を維持するか(クッキー的な)を決めたり、フォームのバリデーションをしたり、もっとviewを工夫したり、そういうことをしたい場合は、参考に上げたurlを参考に、コントローラーや、ビューや、ルートをいじってください。デフォルトの機能を実装するために、コントローラーや、ビューや、ルートはいらないし、必要もないですが、もっと機能を足して、実用化するには、下記のurlを参考に、コントローラーや、ビューや、モデルをもっといじってください。