酒と泪とRubyとRailsと

Ruby on Rails と Objective-C は酒の肴です!

Herokuの超優良アドオン MongoLabを Rails 4.0 X Ruby 2.1環境で使う!

Herokuの超優良アドオンの一つであるMongoLabは、HerokuでMongoDBを0.5GBまで無料で使えるアドオンです。公式のPostgreSQLの無料枠が1万レコードまで なのでかなり太っ腹なサービスです。

fpu_tmp_1353937227.5696_c84f0e

今回は久々にMongoLabを触ったので、ついでにRails 4 x Ruby 2.1での動作確認がてら記事をリニュアールしました!

Rails プロジェクト作成

プロジェクトを作成する。今回はmongoidを利用するので、ActiveRecordをスキップ。(-Oオプションを付ける)

1
rails new test-app -O --skip-test-unit --skip-bundle

Gitリポジトリ作成を作成します。

コンソール
1
2
3
git init
git add -A
git commit -m "create new project"

Gemfileに以下の内容を追加して、bundle installを実行。 (mongoidのバージョンはalpha版なので是非確認をReleases · mongoid/mongoid)

1
2
3
4
5
6
7
ruby '2.1.0'

# Mongoid
gem 'mongoid', '4.0.0.alpha1' # 最新バージョンをGitHubで確認して下さい
gem 'bson_ext'
gem 'origin'
gem 'moped'

mongoDBに接続するための設定を作成

mongoDBの設定ファイルを生成。

1
rails generate mongoid:config

生成された設定ファイルconfig/mongoid.ymlにmongolabのURLを取得するように設定を修正。

1
2
3
4
production:
  sessions:
    default:
      uri: <%= ENV['MONGOLAB_URI'] %>

scaffoldを実行

1
rails g scaffold article title:string

config/routes.rbファイルを修正。

1
root :to => 'articles#index'

HerokuにPush

まずは変更分をコミット。

1
2
git add -A
git commit -m "add scaffold"

続いてheroku上にアプリを生成。

1
heroku create test-app --stack cedar

MongoLabのAddonを追加。

1
heroku addons:add mongolab

Herokuへのデプロイ。

コンソール
1
git push heroku master

結果をブラウザで確認。

fpu_tmp_1353932567.9166_43a8ae

ちなみにheroku addonsとしてのmongolabの便利機能。

1
2
3
4
5
# mongolabのドキュメントをブラウザで表示
heroku addons:docs mongolab

# mongolabの管理画面(データの追加などできます)
heroku addons:open mongolab

ちなみに、heroku addons:open mongolabを実行するとローカルのターミナルからmongolabに接続するためのコマンドがわかるので、ローカルからの開発もかなり捗ります!

今回のソース

今回作成したサンプルソースです。もしつまっちゃうようならぜひお試しください!

Source(GitHub)

補足

次のようなエラーが発生する場合は、

ActionView::Template::Error (undefined method `[]' for nil:NilClass)

Gemfileにrubyのバージョンを指定すると解決しました〜

How can I choose Ruby version on Heroku?

変更来歴

(12/28 20:20) Rails 4.0 x Ruby 2.1対応

おすすめの書籍