Rails 4 と Ruby 2.0 を使う (1)
devise で認証するなにかを作ることにする。 忘れたときに見直すためのメモ。
ruby 2.0
Ubuntu 12.10 に rvm で
ruby 2.0.0p0 (2013-02-24) [x86_64-linux]
をインストールして使用した。 Rails 4 はまだリリースされていないので beta1 を使用した。
rails4 で作成する
今回は専用の gemset 用意する。
rvm gemset create rails4
rvm gemset use rails4
として
gem install rails --version "4.0.0.beta1"
で rails 4.0.0.beta1 をインストールする。
rails new APP_NAME
で新しいアプリケーションを作成する。
cd APP_NAME
git init
git add .
git commit -m "New application"
とりあえず実行してトップページにアクセスしてみる。
rails server
として http://localhost:3000/ にアクセスする。
devise で認証したい
Gemfile に
gem "devise"
を追加してコミットする。
git add Gemfile
git commit -m "Add devise"
次に
bundle update
として gem の devise を用意する。Gemfile.lock が更新されるのでこれもコミットする。
git add Gemfile.lock
git commit -m "Update Gemfile.lock"
devise の設定ファイルを生成する。
rails generate devise:install
とする。
git add config/initializers/devise.rb
git add config/locales/devise.en.yml
git commit -m "Add files created by 'rails generate devise:install'"
で git にコミットしておく。 devise:install で表示された指示にしたがって設定していく。 とりあえず development 環境、つまり config/environments/development.rb に
config.action_mailer.default_url_options = { :host => 'localhost:3000' }
を追加する。
git add config/environments/development.rb
git commit -m "Set config.action_mailer.default_url_options"
routes.rb に
root to: 'home#index'
を追加する。コントローラ名はなんでもよいのだが、devise にしたがって Home にする。
git add config/routes.rb
git commit -m "Root to home#index"
とりあえず、rails の使い方を思い出すためにトップページを作成する。 devise はいったん置いておく。
haml を利用する
erb より haml を使いたい。Gemfile に
gem "haml"
を追加する。
git add Gemfile
git commit -m "Add haml"
bundle update
git add Gemfile.lock
git commit -m "Update Gemfile.lock"
Home controller を作成してトップページを表示する
トップページを表示する Home Controller を作成する。
rails generate controller Home
git add .
git commit -m "Generate Home controller"
app/controllers/home_controller.rb に index メソッドを作成して
class HomeController < ApplicationController
def index
@hello_to = "World"
end
end
とする。app/views/home/index.html.haml を作成して
%h1 Top page
%p
Hello #{@hello_to}!
と記述する。http://localhost:3000/ にアクセスして上の内容が表示されればよい。
git add app/controllers/home_controller.rb
git add app/views/home.html.haml
git commit -m "Add view of home#index"