在rails中使用mongoid

最近发现,如果是一个轻量级的项目的话使用MongoDB数据库会比用sqlite3来的更方便,下面就来介绍一下如何在rails中使用MongoDB

1)首先,这里推荐使用mongoid这个gem

1
gem install mongoid

2)如果是在一个新的rails项目中使用的话步骤如下

1
2
3
4
5
rails new app_name --skip-active-record --skip-bundle
cd app_name
echo "gem 'mongoid'" >> Gemfile
bundle install
rails g mongoid:config

如果是在一个老项目中使用的话则是这样

1
2
3
4
5
cd app_name
echo "gem 'mongoid'" >> Gemfile
bundle update
rails g mongoid:config
rm config/database.yml

3)参照这个文档配置config/mongoid.yml文件

4)在config/application.rb文件中删除require "rails/all"这行,之后在文件中添加上下列代码

1
2
3
4
require "action_controller/railtie"
require "action_mailer/railtie"
require "active_resource/railtie"
require "rails/test_unit/railtie"

5)如果用的rails版本在3.2以上的话,在config/environments/development.rb文件中删除下面两行代码

1
2
config.active_record.mass_assignment_sanitizer = :strict
config.active_record.auto_explain_threshold_in_seconds = 0.5

6)如果用的rails版本在3.2.3以上的话,在config/application.rb文件中删除下面一行代码

1
config.active_record.whitelist_attributes = true

7)打算在控制台中输出操作mongodb的log内容的话,把一下代码添加到config/application.rb文件中

1
2
3
# Mongoid logger
Mongoid.logger.level = Logger::DEBUG
Moped.logger.level = Logger::DEBUG

配置结束。

之后请忘掉rake db:migrate这些命令吧,他们已经不存在了。

只要你的model类写了include Mongoid::Document的话,在mongodb数据库中会自动的创建这个字段出来,Great。

之后有什么疑问的话请参照mongoid的文档,相信这么容易使用的东西你一定会很快上手的。