2014年5月14日

Rails 4.1 でユーザー機能を追加する

Ruby on Rails 4.1 にユーザー機能を追加したかったので、 devise を導入しました。
https://github.com/plataformatec/devise

導入


  1. Gemfile に以下を追加
gem 'devise'
  1. コマンドで以下を実行
bundle install


簡単ですね。
しかし、devise のルーティングは汚いですよね。

Webサービス開発時に色々ルーティングを考えていたのですが、自分のサービスでこのルーティングはないかなと思いました。

同じ考えの人が書いた記事を見て
http://easyramble.com/routing-by-devise-for.html
そこから、devise のルーティングを変更する gem を公開されている方を発見
http://d.hatena.ne.jp/tkawa/20130812/p1

さっそく導入しました。

ルーティングの変更


  1. Gemfile に以下を追加
gem 'devise-better_routes'
  1. コマンドで以下を実行
bundle install

自身のRailsアプリに devise を追加

rails generate devise:install

devise を使って User モデルを作成

rails generate devise User

マイグレーション

rake db:migrate

ユーザーモデルの方針

以下で User モデルにカラムを追加する方法が掲載されています。
http://koudaiii.hatenablog.com/entry/2013/10/27/130615

しかし、僕は、User モデルと 1対1 の関係を持つ Personモデルを作成し、そちらに自身のサービスのデータを登録することにしました。