Rails 4 と Ruby 2.0 を使う (2)
Rails 4 と Ruby 2.0 を使う (1) の続き。
rspec
Gemfile に
gem "rspec-rails"
を追加する。
git add Gemfile
git commit -m "Add rspec-rails"
bundle update
git commit -m "Update Gemfile.lock"
rails generate rspec:install
git add .
git commit -m "rails generate rspec:install"
protected_attributes
rake routes
とするとエラーが出た。gem のどれかが rails 4 の Strong Parameters に対応していないようだ。 Gemfile に
gem "protected_attributes"
を追加してエラーが出ないようにする(これは rails 4 が普及したら、最終的には使用しないほうがよいはず)。
git add Gemfile
git commit -m "Add protected_attributes"
bundle update
git add Gemfile.lock
git commit -m "Update Gemfile.lock"
letter_opener
ユーザ登録時にメールを返信したいのだが、開発時に一々メールを確認するのは面倒。 letter_opener を使用する。Gemfile に
gem "letter_opener", :group => :development
を追加する。
git add Gemfile
git commit -m "Add letter_opener"
bundle update
git add Gemfile.lock
git commit -m "Update Gemfile.lock"
letter_opener の README.rdoc にあるように config/environments/development.rb に次を追加する。
config.action_mailer.delivery_method = :letter_opener
コミットしておく。
git add config/environments/development.rb
git commit -m "Setting of letter_opener"
devise の認証用のモデルとビューを作成
devise の認証用に User モデルを作成することにする。
rails generate devise User
git add .
git commit -m "rails generate devise User"
でモデルを作り
rake db:migrate RAILS_ENV=development
git add db/schema.rb
git commit -m "Update migration"
でデータベースのスキーマを設定する。
後で Admin クラスを作って、管理者ユーザと一般ユーザに分けるつもりなので ビューを作るときには次のようにする。
rails generate devise:views users
作成された app/views/users 以下を使用するように config/initializers/devise.rb の中で次のような修正をする。
config.scoped_views = true
これでコミットしておく。
git add .
git commit -m "rails generate devise:views users"
メールで確認をとるようにしたい。app/models/user.rb で
- devise :database_authenticatable, :registerable,
+ devise :database_authenticatable, :registerable, :confirmable,
を変更する。また、データベースのスキーマを変更する。一度、データベースを削除することにして db/migrate 以下にある *_devise_create_users.rb を編集する。
- # t.confirmable
+ t.confirmable
と
- # add_index :users, :confirmation_token, :unique => true
+ add_index :users, :confirmation_token, :unique => true
の2か所を変更する。
git add app/models/user.rb
git add db/migrate/20130318234323_devise_create_users.rb
git commit -m "Setting of mail confirmation of devise"
データベースを作り直す。
rm db/development.sqlite3
rake db:migrate RAILS_ENV=development
git add db/schema.rb
git commit -m "Recreate db/schema.rb"
http://localhost:3000/users/sign_up にアクセスしてユーザを登録してみる。 確認のメールが letter_opener でブラウザに表示される。
erb2haml
erb ではなく haml を使いたいので、view の erb を haml に変換する。 erb2haml をインストールしても html2haml がインストールされないようなので Gemfile に
gem "html2haml", :group => :development
gem "erb2haml", :group => :development
を追加する。
git add Gemfile
git commit -m "Add erb2haml and html2haml"
bundle update
git add Gemfile.lock
git commit -m "Update Gemfile.lock"
erb を haml に変換する。
rake haml:convert_erbs
erb は削除されないので、すべての erb が不要な場合は
find app/views -name "*.erb" | xargs git rm
などとして削除する。
git add app/views
git commit -m "Convert erb to haml"