23
25

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 5 years have passed since last update.

MongoDB+Ruby on Rails4アプリ作成

Last updated at Posted at 2014-02-19

#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」という記事を作成します。
mongo_rails4.jpg

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シェルが終了します。

23
25
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
23
25

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?