Heroku + Rails 3.2.9 + Bootstrap + Haml + PostgreSQLでデプロイするまでの最短ガイドを作りました!
😼 Herokuユーザー登録
Herokuでユーザー登録をします。
アカウント作成時に使ったメールアドレスとパスワードは後で使うのでメモっておいてください。
Heroku Toolbeltをインストールします。Heroku Toolbeltの機能は;
- Heroku client - Heroku appsを管理するためのCLI
- Foreman - ローカルでHerokuアップを動かすためのオプション
- Git - HerokuへのPush/ソースのバージョン管理
🐮 ローカル環境設定
任意でrailsのアップデートを実行します。
rvmsudo gem update rails |
gem herokuをインストールします。
gem install 'heroku' |
アカウント作成時に使ったメールアドレスとパスワードを事前に設定します。
これによってデプロイのたびに、パスワードを聞かれるのを防ぎます。
Heroku keys:add |
🐯 Rails プロジェクト作成 〜 index.html表示まで
Railsの新規プロジェクトを作成します。
rails new test-app --skip-test-unit -d postgresql |
Gitリポジトリ作成を作成します。
Git init |
herokuコマンドを使って、heroku上にアプリケーションを作成します。
(test-appだとすでに使われてて動かないので、使われてなさそうな名前がいいっすよ〜)
heroku create test-app --stack cedar |
http://test-app.herokuapp.com/ をブラウザで表示されることを確認。
🗻 Rails Gem登録 〜 scaffold表示まで
gemfileを編集して、プロジェクトに任意のGemを追加。
(gemは適宜カスタマイズしてください)
source 'https://rubygems.org' |
Gemをインストール。
bundle install |
config/application.rbの設定です。
(class Application < Rails::Application内に追記してください)
# LESS |
Herokuのタイムゾーン設定。
heroku config:add TZ=Asia/Tokyo |
application.cssを削除して、LESSファイルを生成
rm -rf app/assets/stylesheets/application.css |
bootstrapのcssを読み込むように設定を追加する。
app/assets/stylesheets/application.css.lessに以下んコードを追加。
// = require_tree . |
bootstrapのJavaScriptを読み込むようにするために、app/assets/javascripts/application.jsに次のコードを追加。
//= require Twitter/bootstrap |
application.html.erbファイルをhamlにファイル名を変更。
mv app/views/layouts/application.html.erb app/views/layouts/application.html.haml |
application.html.hamlの中身もhaml形式にする。
|
Railsの日本語化ファイルを設定する。
wget https://raw.github.com/svenfuchs/rails-i18n/master/rails/locale/ja.yml |
simple formの初期設定(bootstrap対応)
rails generate simple_form:install --bootstrap |
railsへのrspecのインストールと雛形を作成
rails generate rspec:install |
RSpecの設定ファイル”spec/spec_helper.rb”を修正(コメントアウトする)
#config.fixture_path = "#{::Rails.root}/spec/fixtures" |
scaffoldを追加の前にpublic/index.htmlをリネーム(無効化する)。
mv public/index.html public/_____index.html |
scaffoldの作成してビューを追加。
rails g scaffold product name price:integer |
config/routes.rbにて、ルートアクセス設定を追加。
root :to => "products#index" |
Herokuでthinが動くようにする。
プロジェクト直下にProcfileを新規作成。
Web: bundle exec rails server thin -p $PORT -e $RACK_ENV |
設定画反映されたかチェック。
foreman check |
$RACK_ENVをセットするファイルを作成
echo "RACK_ENV=development" >>.env |
gitに.envが記録されないようにする。
プロジェクト直下の.gitignoreに以下を追加。
.env |
Herokuへのアプリケーションのデプロイ => DBのマイグレーション。
Git add . -A |
ブラウザでscaffordしたビューが見れることを確認。
デプロイまでの最短ガイドは以上っす。
Thank very much you for your kind attention.
🐞 関連記事
開発サーバをThinからPowに切り替えて開発効率アップ! (Mac限定) にてPowに関する記事を載せました。Guardが更に活用できると思います。よかったらぜひ見てください。
🐠 補足 : ローカルでのテスト環境の構築
config/database.ymlを以下の通り編集する。今回は
- “development”, “test” => mysql
- “production” => postgreSQL
とした場合の設定です。環境に合わせて調整を。
development: |
DBの作成を実行。
Rake db:create RAILES_ENV='development' |
サーバプロセスを起動する。
foreman start |
http://0.0.0.0:5000/_____index.htmlを表示してDBに接続されていることを確認する。
😎 補足 : コマンド系
Herokuコマンド一覧
# Herokuへのログイン |
既存モデルのRspec雛形を作成するコマンド。
rails generate rspec:model products |
テスト環境は以下のとおりです。
OS : Mac Lion(OS X 10.7) Rails : 3.2.9 haml : 3.1.7 coffee-script : 3.2.1