我正确安装了MongoDB并让它在我的OSX上运行。我使用MongDB和Rails3创建的第一个应用程序名为'todo' 关于railscasts的说明,我创建了一个文件(config / initilializers / mongo.rb)并添加了这一行:
MongoMapper.database = "todo-
#{Rails.env}"
据推测,这创建了我的/ data / db /文件中出现的文件,名为“todo- 开发“。当我在Rails中使用generate命令创建 模型,数据被正确存储在这个文件中。一切都很好,直到今天 点。
现在的问题是,我似乎无法在/ data / db文件中创建新文件 我用Rails创建新的应用程序。 (我认为)数据文件应该是 从初始化文件创建(例如:
MongoMapper.database = "newproject-
#{Rails.env}"
我添加到每个新应用。但它 不是。
这是我的宝石(与我的第一个应用程序配合使用!:
require 'rubygems'
gem 'mongo', '1.0'
source 'http://gemcutter.org'
gem 'rails', '3.0.0.beta4'
gem "mongo_mapper"
gem 'bson_ext', '1.0'
任何帮助将不胜感激!
答案 0 :(得分:1)
最后在谷歌集团的帮助下,克里斯蒂安·曼德鲁斯帮助解决了这个问题。谢谢克里斯蒂安。我需要取消注释application.rb文件中的config.generator并将orm从active_record更改为mongo_mapper。 (顺便说一句,我在尝试运行生成器之前遇到的错误是“”没有为所需选项提供值' - ''。“)
更多信息:http://www.viget.com/extend/rails-3-generators-hooks/
为了它的价值,我将包括我需要采取的整个过程,以使MongoDB和Rails 3正常协同工作。
在OSX上安装MongoDB
$ sudo port install mongodb
创建数据目录:
$ sudo mkdir -p /data/db
设置数据目录的权限:
$sudo chown `id -u` /data/db
在终端启动Mongo:
$ mongod run
访问本地主机以验证MongoDB是否正在运行:
http://localhost:28017/
使用Rails 3创建新项目:
$ rails new projectname --skip-activerecord
将其添加到gemfile:
require 'rubygems'
gem 'mongo', '1.0'
source 'http://gemcutter.org'
gem 'rails', '3.0.0.beta4'
gem "mongo_mapper"
gem 'bson_ext', '1.0'
取消注释(并修改)application.rb文件中的这些行:
config.generators do |g|
g.orm :mongo_mapper
end
创建config / initializer / mongo.rb文件:
MongoMapper.connection = Mongo::Connection.new('localhost', 27017)
MongoMapper.database = "projectname-#{Rails.env}"
创建lib / tasks / mongo.rake文件:
namespace :db do
namespace :test do
task :prepare do # Stub out for MongoDB
end
end
end
安装宝石:
$bundle install
创建第一个模型:
$rails generate scaffold Product name:string --skip-migration
创建models / product.rb文件:
class Product
include MongoMapper::Document
key :name, string
end