#MongoDBを使ってRuby on Rails4アプリケーションを作成する方法を解説
今回、Rubyのバージョンは2.1、 OSは「Ubuntu12.04」を使用し、
Rails4は環境は整っている前提とします。
##MongoDBのインストール
###リポジトリの公開鍵を取得します。
$ sudo apt-key adv --keyserver hkp://keyserver.ubuntu.com:80 --recv 7F0CEB10
###リポジトリを追加します。
$ echo 'deb http://downloads-distro.mongodb.org/repo/ubuntu-upstart dist 10gen' | sudo tee /etc/apt/sources.list.d/mongodb.list
$ sudo apt-get update
###MongoDBをインストールします。
$ sudo apt-get install mongodb-10gen
###MongoDBのサービスが正常に起動しているか確認します。
mongo -versionコマンドで以下のように表示されれば正常に起動しています。
$ mongo -version
MongoDB shell version: 2.4.9
#Rails4アプリケーションの作成
-Oオプションを使いActiveRecordを組み込まないように設定します。
$ rails new hoge -O
Gemfileファイルの設定
以下のようにgemを追加します。
gem 'mongoid', '4.0.0.beta1'
gem 'moped', '~>2.0.beta6'
gem 'bson_ext'
bundle updateを行います。
$ bundle update
「Could not find a JavaScript runtime...」のようなエラーがでたら、gemに「therubyracer」を追加してください。
MongoDB用DB設定ファイル生成
$ rails g mongoid:config
create config/mongoid.yml
config配下に「mongoid.yml」というMongoDB用のDB設定ファイルが生成されます。
Scaffoldでアプリケーションの雛形作成
Scaffoldを使って、記事を投稿するアプリケーションの雛形を作成します。
$ rails g scaffold Article title:string
invoke mongoid
create app/models/article.rb
(中略)
create app/assets/stylesheets/scaffolds.css.scss
動作確認
以下のようにコマンドを入力して、ブラウザで「localhost:3000/articles」にアクセスして動作を確認します。
$ rails s
正常に起動したら、「New Article」をクリックして「Hello World」という記事を作成します。
MongoDBのデータ確認
MongoDBシェルを起動します。
$ mongo
MongoDBシェルでshow dbsコマンドを入力すると「hoge_development」というDBが作成されていることがわかります。
MongoDB shell version: 2.4.9
connecting to: test
> show dbs
hoge_development 0.0625GB
次に、useコマンドでdbを選択して、show tablesコマンドを入力すると「articles」テーブルが生成されていることがわかります。
さらに、db.articles.find()と入力すると、
記事に入力した「Hello World」が格納されていることが確認できます。
> use hoge_development
switched to db hoge_development
> show tables
articles
system.indexes
> db.articles.find()
{ "_id" : ObjectId("5305324d6d68762b7d000000"), "title" : "Hello World" }
>
exitと入力するとMongoDBシェルが終了します。