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

📚 おすすめの書籍

🖥 サーバについて

このブログでは「Cloud Garage」さんのDev Assist Program(開発者向けインスタンス無償提供制度)でお借りしたサーバで技術検証しています。 Dev Assist Programは、開発者や開発コミュニティ、スタートアップ企業の方が1GBメモリのインスタンス3台を1年間無料で借りれる心強い制度です!(有償でも1,480円/月と格安)