2

我遇到了一些非常简单的错误,并且不确定我做错了什么。对 Mongo 来说相当新

将 Rails 3.2.6 与 MongoDB 和 Mongoid 一起使用。尝试向嵌入字段添加索引。

我有一个模型“方案”,其中嵌入了“推荐人”。“Referal”有一个字段“to_code”(字符串)。我想索引这个字段。

class Scheme
  include Mongoid::Document
  include Mongoid::Timestamps
  embeds_many :referals
  index "referals.to_code" => 1

class Referal
  include Mongoid::Document
  include Mongoid::Timestamps
  embedded_in :scheme

当我运行 'rake db:mongoid:create_indexes' 失败并出现以下错误:

 Not a Mongoid parent model: app/models/referal.rb
 rake aborted!
 Invalid index specification {"referals.to_code"=>1}; should be either a string, symbol, or an array of arrays.

据我所知,这完全遵循 Mongoid 文档,所以不确定我做错了什么。非常感谢任何帮助。

4

1 回答 1

3

我认为您正在使用带有 gem 版本 2 的 mongoid 3 语法。

错误消息表明预期使用 mongoid 2 索引语法:http: //two.mongoid.org/docs/indexing.html

您正在尝试使用 mongoid 3 索引语法:http ://mongoid.org/en/mongoid/docs/indexing.html

检查您正在使用的 gem 的版本并相应地调整您的语法。

于 2012-07-04T14:59:09.347 回答