【发布时间】:2012-05-29 15:16:16
【问题描述】:
我刚刚开始了一个全新的 Rails 项目,我尝试完成的第一个任务是创建一个对象并将其保存在我的数据库中。我通过自动生成对象的方式,在本例中为 URL 对象,如下所示:
rails generate scaffold Url domain:string
我还测试了两个单独的 mongoid.yml 配置设置。第一种如下:
development:
sessions:
default:
# Defines the name of the default database that Mongoid can connect to.
# (required).
uri: mongodb://[username]:[password]@flame.mongohq.com:27046/[database]
options:
consistency: :strong
这个配置的结果是,当查询发生时,我得到如下错误:
The operation: #<Moped::Protocol::Query
@length=39
@request_id=5
@response_to=0
@op_code=2004
@flags=[]
@full_collection_name=".urls"
@skip=0
@limit=0
@selector={}
@fields=nil>
failed with error 13075: "db name can't be empty"
我还测试了以下配置:
development:
uri: mongodb://[username]:[password]@flame.mongohq.com:27046/[database]
当代码到达 urls_controller 的 create 方法时,它在 @url.save 处失败,并出现以下错误:
mongoid (3.0.0.rc) lib/mongoid/sessions/factory.rb:100:in `parse'
mongoid (3.0.0.rc) lib/mongoid/sessions/factory.rb:61:in `create_session'
mongoid (3.0.0.rc) lib/mongoid/sessions/factory.rb:43:in `default'
mongoid (3.0.0.rc) lib/mongoid/sessions.rb:109:in `default'
mongoid (3.0.0.rc) lib/mongoid/sessions.rb:354:in `__session__'
mongoid (3.0.0.rc) lib/mongoid/sessions.rb:199:in `mongo_session'
mongoid (3.0.0.rc) lib/mongoid/sessions.rb:157:in `collection'
mongoid (3.0.0.rc) lib/mongoid/sessions.rb:25:in `collection'
mongoid (3.0.0.rc) lib/mongoid/persistence/operations.rb:26:in `collection'
mongoid (3.0.0.rc) lib/mongoid/persistence/operations/insert.rb:27:in `block in persist'
mongoid (3.0.0.rc) lib/mongoid/persistence/insertion.rb:25:in `block (2 levels) in prepare'
activesupport (3.2.3) lib/active_support/callbacks.rb:403:in `_run__2492706777632263523__create__3276423133299307975__callbacks'
activesupport (3.2.3) lib/active_support/callbacks.rb:405:in `__run_callback'
activesupport (3.2.3) lib/active_support/callbacks.rb:385:in `_run_create_callbacks'
activesupport (3.2.3) lib/active_support/callbacks.rb:81:in `run_callbacks'
mongoid (3.0.0.rc) lib/mongoid/callbacks.rb:95:in `run_callbacks'
mongoid (3.0.0.rc) lib/mongoid/persistence/insertion.rb:24:in `block in prepare'
activesupport (3.2.3) lib/active_support/callbacks.rb:403:in `_run__2492706777632263523__save__3276423133299307975__callbacks'
activesupport (3.2.3) lib/active_support/callbacks.rb:405:in `__run_callback'
activesupport (3.2.3) lib/active_support/callbacks.rb:385:in `_run_save_callbacks'
activesupport (3.2.3) lib/active_support/callbacks.rb:81:in `run_callbacks'
mongoid (3.0.0.rc) lib/mongoid/callbacks.rb:95:in `run_callbacks'
mongoid (3.0.0.rc) lib/mongoid/persistence/insertion.rb:23:in `prepare'
mongoid (3.0.0.rc) lib/mongoid/persistence/operations/insert.rb:26:in `persist'
mongoid (3.0.0.rc) lib/mongoid/persistence.rb:49:in `insert'
mongoid (3.0.0.rc) lib/mongoid/persistence.rb:188:in `upsert'
app/controllers/urls_controller.rb:46:in `block in create'
我的假设是我的 mongoid.yml 文件不正确,但我不确定如何让它工作。有什么想法吗?
【问题讨论】:
-
看来我已经解决了问题...
-
想告诉我们怎么做?我假设您保留了 URI,因为 @Tylers 的答案不被接受
标签: ruby-on-rails ruby-on-rails-3 mongodb mongoid mongohq