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を利用するので、Active Recordをスキップ。(-Oオプションを付ける)

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

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

Git init
Git add -A
Git commit -m "create new project"

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

ruby '2.1.0'

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

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

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

rails generate mongoid:config

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

production:
sessions:
default:
uri: <%= env['mongolab_uri'] %>

🚌 scaffoldを実行

rails g scaffold article title:string

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

root :to => 'articles#index'

🎃 HerokuにPush

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

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

続いてHeroku上にアプリケーションを生成。

heroku create test-app --stack cedar

MongoLabのAddonを追加。

heroku addons:add mongolab

Herokuへのデプロイ。

Git push herokuマスタ

結果をブラウザで確認。

fpu_tmp_1353932567.9166_43a8ae

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

# 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対応

🖥 VULTRおすすめ

VULTR」はVPSサーバのサービスです。日本にリージョンがあり、最安は512MBで2.5ドル/月($0.004/時間)で借りることができます。4GBメモリでも月20ドルです。 最近はVULTRのヘビーユーザーになので、「ここ」から会員登録してもらえるとサービス開発が捗ります!

📚 おすすめの書籍