标签: mongoid3

可比性问题rails 4 beta,ruby 2.0.0,mongoid

我正在使用以下版本的rails,ruby和mongoid创建一个测试应用程序.

rails 4 beta
ruby 2.0.0
mongoid 3.1.2
Run Code Online (Sandbox Code Playgroud)

GemFile看起来像这样

gem 'rails', '4.0.0.beta1'
ruby '2.0.0'
gem 'mongoid', '~> 3.1.2'
gem 'bson_ext'
Run Code Online (Sandbox Code Playgroud)

但是,当我bundle在控制台上运行时,我得到以下错误.

Bundler找不到gem"activemodel"的兼容版本:

Fetching gem metadata from https://rubygems.org/...........
Fetching gem metadata from https://rubygems.org/..
Resolving dependencies...
Bundler could not find compatible versions for gem "activemodel":
  In Gemfile:
    mongoid (~> 3.1.2) ruby depends on
      activemodel (~> 3.2) ruby

    rails (= 4.0.0.beta1) ruby depends on
      activemodel (4.0.0.beta1)
Run Code Online (Sandbox Code Playgroud)

有人可以帮忙吗?请.....

mongoid3 ruby-2.0 ruby-on-rails-4

31
推荐指数
1
解决办法
7677
查看次数

Mongoid没有Rails

我正在使用独立的ruby应用程序,无法配置Mongoid 3.0.13.

我遇到过几个配置模块的示例应用程序:

Mongoid::Config.instance.from_hash({"database" => "oid"}) 
Run Code Online (Sandbox Code Playgroud)

要么

Mongoid.configure do |config|
 name = "mongoid_test_db"
 host = "localhost"
 port = 27017
 config.database = Mongo::Connection.new.db(name)
end
Run Code Online (Sandbox Code Playgroud)

这导致:

undefined method `database=' for Mongoid::Config:Module (NoMethodError)
Run Code Online (Sandbox Code Playgroud)

最近配置设置似乎已更改.

我也尝试过:

Mongoid::Config.connect_to("sweet")
Run Code Online (Sandbox Code Playgroud)

但这似乎什么都不做.

ruby mongodb mongoid mongoid3

14
推荐指数
1
解决办法
4258
查看次数

如何以编程方式获取Mongoid写入的当前数据库?

我使用Mongoid和rails使用Mongoid.override_database("database_name")与多个数据库进行通信.如何以编程方式查找当前数据库?

关于会话的Mongoid文档:http://mongoid.org/en/moped/docs/driver.html 定义覆盖数据库的方法,但没有定义获取当前数据库的方法.

ruby-on-rails mongodb mongoid mongodb-ruby mongoid3

13
推荐指数
2
解决办法
6008
查看次数

Unicorn在资产预编译期间触发mongoid错误

我有一个使用在Heroku上运行的Mongoid 3的rails应用程序.我刚刚更新它以使用Unicorn.当我尝试将其部署到Heroku时,我收到以下错误:

Running: rake assets:precompile
rake aborted!
   undefined method `match' for nil:NilClass
   /tmp/build_3nnbzpfmnjpns/vendor/bundle/ruby/1.9.1/gems/mongoid-3.0.21/lib/mongoid/sessions/mongo_uri.rb:49:in `initialize'
Run Code Online (Sandbox Code Playgroud)

完整的堆栈跟踪可以在http://pastebin.com/8YcJHEmS找到

但是如果我从我的Gemfile中删除Unicorn,资产编译就会成功.查看Mongoid代码,我可以看到当mongoid.yml文件被解析时发生错误,但我无法弄清楚为什么Unicorn会导致失败.我的mongoid.yml文件看起来像这样:

production:
  sessions:
    default:
      uri: <%= ENV['MONGOHQ_URL'] %>
      options:
        skip_version_check: true
        safe: true
Run Code Online (Sandbox Code Playgroud)

我的Gemfile:

source 'https://rubygems.org'
ruby '1.9.3'

gem 'rails', '3.2.11'
gem 'thin'

group :assets do
  gem 'sass-rails',   '~> 3.2'
  gem 'coffee-rails', '~> 3.2'
  gem 'uglifier', '>= 1.0.3'
  gem "twitter-bootstrap-rails", '>=2.1.8'
  gem "bootstrap_form"

end

gem "jquery-rails"
gem 'jquery-ui-rails', "3.0.1"

gem 'newrelic_rpm'
gem "httparty"
gem "resque"
gem "resque-loner"
gem "unicorn", "4.4.0"
gem "mongoid", "~> …
Run Code Online (Sandbox Code Playgroud)

ruby-on-rails heroku unicorn ruby-on-rails-3 mongoid3

11
推荐指数
2
解决办法
1436
查看次数

Rails Engine + Mongoid:找不到名为'default'的会话的配置

我已经创建了一个Rails可安装应用程序并添加了'mongoid'和'rspec'gem.如果我现在尝试运行我的规格,我会收到以下错误:

Mongoid::Errors::NoSessionConfig: 
Problem:
  No configuration could be found for a session named 'default'.
Summary:
  When attempting to create the new session, Mongoid could not find a session configuration for the name: 'default'. This is necessary in order to know the host, port, and options needed to connect.
Resolution:
  Double check your mongoid.yml to make sure under the sessions key that a configuration exists for 'default'. If you have set the configuration programatically, ensure that 'default' exists in the configuration hash. …
Run Code Online (Sandbox Code Playgroud)

rails-engines mongoid3

10
推荐指数
2
解决办法
1万
查看次数

Moped :: Errors :: ConnectionFailure无法连接到副本集的任何辅助节点或主节点

Ubuntu它被绞死后我不得不强行关闭我的系统.现在我在尝试运行我的Rails应用程序时遇到此错误.

Moped::Errors::ConnectionFailure (Could not connect to any secondary or primary nodes for replica set <Moped::Cluster nodes=[<Moped::Node resolved_address="127.0.0.1:27017">]>):
Run Code Online (Sandbox Code Playgroud)

即时通讯使用Rails 3.2.11Mongoid 3.1.4.

可能有什么不对?

mongoid mongoid3

10
推荐指数
1
解决办法
9405
查看次数

如何使用mongoid/moped进行upsert/push

我正在使用Mongoid(v3)来访问MongoDB,并希望执行此操作:

db.sessionlogs.update( 
    {sessionid: '12345'}, /* selection criteria */
    {'$push':{rows: "new set of data"}},  /* modification */
    true /* upsert */
);
Run Code Online (Sandbox Code Playgroud)

这在mongo shell中工作正常.它也正是我想要的,因为它是一个单一的原子操作,对我来说很重要,因为我会调用它.我不想做两个操作 - 获取然后更新.我通过mongoid尝试了很多东西,但无法让它工作.

如何将MongoID取出并将此命令发送到MongoDB?我猜测在Moped级别有一些方法可以做到这一点,但该库的文档基本上不存在.

ruby mongodb mongoid mongoid3 moped

9
推荐指数
1
解决办法
4002
查看次数

有关从MongoMapper迁移到Mongoid的建议?

看起来Mongoid现在是基于性能和开发活动的Mongo的优秀ORM.不幸的是,我们在MongoMapper上并且需要迁移.

我们应该注意哪些问题或绊脚石?我们在Google上发现了一些过时的文章,并尝试在Mongoid Google网上论坛上发帖(虽然我们被禁止),但是会喜欢过去做过这种情况的SO成员的想法.

我们在Rails 3.2.12上.

谢谢!

ruby-on-rails mongodb mongomapper mongoid mongoid3

9
推荐指数
1
解决办法
844
查看次数

使用Mongoid 3在mongodb中存储函数

正如标题所暗示的那样.我无法找到与Mongoid 3相关的任何内容.我发现的东西只适用于mongoid那些没有使用的旧版本Moped.

我发现了这个并没有用:

def self.install_javascript
  getWeekJs = Rails.root.join("lib/javascript/getWeek.js")
  if collection.master['system.js'].find_one({'_id' => "getWeek"}).nil?
    collection.master.db.add_stored_function("getWeek", File.new(getWeekJs).read)
  end
end
Run Code Online (Sandbox Code Playgroud)

此方法会将getWeek函数添加到system.js集合中.

怎么能在mongoid 3中完成?

ruby-on-rails mongoid3

7
推荐指数
1
解决办法
597
查看次数

BSON :: Binary :: InvalidType"我的文件内容"不是有效的二进制类型.请使用以下之一:generic,:function,:old,:uuid_old,:uuid,:md5,:user.):

我试图在rails中使用carrierwave mongoid将文件保存到gridfs中.由于此错误,我无法执行此过程:

BSON::Binary::InvalidType ("my file content" is not a valid binary type. 
Please use one of :generic, :function, :old, :uuid_old, :uuid, :md5, :user.):
Run Code Online (Sandbox Code Playgroud)

任何人都可以帮我解决这个问题吗?

提前致谢.

bson gridfs carrierwave mongoid3 ruby-on-rails-4

7
推荐指数
0
解决办法
172
查看次数