このドキュメントは、Rails界隈の最新技術を集めて、サンプルアプリを作り、Herokuにデプロイするまでの手順をまとめたものです。開発環境は、Ubuntu 10.04。
環境
・Ubuntu 10.04 Desktop 64bit
・RVM 1.0.11
・Ruby 1.9.2
・Rails 3.0.0
・DataMapper 1.0.2
・jQuery 1.4.2
・RSpec 2.0.0
RVMのインストール
いろんなバージョンのRubyを切り替えて使いたいので、RVMを使って、Rubyをインストールします。
まずは、rvmのインストールに必要なものをインストールします。
$ sudo apt-get install curl git-core libreadline-dev
準備が整ったら、rvmのインストールを実行します。
$ bash < <( curl http://rvm.beginrescueend.com/releases/rvm-install-head )
環境変数に、rvmのパスを追加します。
$ vi ~/.bashrc
[[ -s "$HOME/.rvm/scripts/rvm" ]] && . "$HOME/.rvm/scripts/rvm" # 末尾に追加
$ source ~/.bashrc
Rubyのインストール
rubyをインストールする前に、下記のライブラリをインストールしておきます。
これを入れておかないと、Rails動かすときにエラーが出ます。
$ rvm package install zlib
$ rvm package install readline
$ rvm package install openssl
zlibのパスだけ上記でインストールしたものに変更して、Ruby 1.9.2をインストール
$ rvm install 1.9.2 -C --with-zlib-dir=$HOME/.rvm/usr,--with-readline-dir=$HOME/.rvm/usr,--with-openssl-dir=$HOME/.rvm/usr
デフォルトで使うRubyのバージョンを指定します。
$ rvm use 1.9.2 --default
PostgreSQLのインストール
今回は、DBにPostgreSQLを使います。
$ sudo apt-get -y install postgresql postgresql-server-dev-8.4 pgadmin3
インストール完了後、管理者アカウント"postgres"のパスワードを設定します。
$ sudo passwd postgres
設定ファイルを書き換えます。
$ sudo vi /etc/postgresql/8.4/main/pg_hba.conf
# Railsから接続するための設定(postgresユーザーで接続する場合)
# local all postgres ident コメントアウト
local all postgres trust # 追加
# pgAdmin3から接続するための設定
# host all all 127.0.0.1/32 md5 コメントアウト
host all all 127.0.0.1/32 trust # 追加
PostgreSQLを再起動。
$ sudo service postgresql-8.4 restart
PostgreSQLのアダプタをインストール。
$ gem install pg
Railsのインストール
$ gem install rails
サンプルアプリの作成
Railsプロジェクトの作成
"rails new"コマンドを実行して、プロジェクトを作成します。
"-m"でテンプレートを指定することにより、DataMapper用の初期設定まで自動的に行われます。
$ rails new testapp -d postgresql -m http://datamapper.org/templates/rails.rb
$ cd testapp
"bundle install"で、DataMapper関係のライブラリをインストールします。
$ bundle install
Hamlの導入
テンプレート記述言語を、Hamlに入れ替えます。
Gemfileに、下記の一行を加えて、"bundle install"でインストール。
$ vi Gemfile
gem 'haml-rails'
$ bundle install
jQueryの導入
JavaScriptライブラリを、jQueryに入れ替えます。
Gemfileに、下記の一行を加えて、"bundle install"でインストール。
$ vi Gemfile
gem 'jquery-rails'
$ bundle install
インストール後、下記のコマンドを実行すると、prototype.jsがjQueryに置換されます。
$ rails g jquery:install
Rspecの導入
テスティングフレームワークを、RSpecに入れ替えます。
Gemfileに、下記の一行を加えて、"bundle install"でインストール。
$ vi Gemfile
group(:development, :test) do
gem 'rspec-rails' # ここに追加する
end
$ bundle install
あとは、設定ファイルをジェネレートして、準備完了です。
$ rails g rspec:install
database.ymlのユーザー名とパスワードを変更します。
$ vi config/database.yml
defaults: &defaults
adapter: postgres
username: enteryourusername
password: enteryourpassword
development:
testapp_development
<<: *defaults
test:
database: testapp_test
<<: *defaults
production:
database: testapp_production
<<: *defaults
scaffoldで、ファイルを一式作成します。
$ rails g scaffold hoge title:string body:text
DBとテーブルを作成します。DataMapperの場合は、"rake db:migrate"ではなく、"rake db:automigrate"だということに気をつけてください。
$ rake db:create
$ rake db:automigrate
Webサーバを起動します。
$ rails s
ブラウザで、http://localhost:3000/hogesにアクセスし、きちんと表示されれば、成功です。
Herokuにデプロイ
Herokuにデプロイするまでの手順は、本家のドキュメントを参考にしてください。
Heroku | Heroku Quickstart Guide
注意点
1. マイグレーション
ローカルでの実行時同様、DataMapperの場合は、"heroku rake db:migrate"ではなく、"heroku rake db:automigrate"になります。
2. Rubyのバージョン
Herokuのデフォルトは、1.8.7です。下記のドキュメントを参考に、1.9.2への切り替えを行ってください。
Heroku | Platform Stacks (Beta)
その他
production.logを見たい場合はこちら。
Heroku | Logs and exceptions