嵌入式字段上的Mongo / Rails Mongoid索引

时间:2012-07-04 13:05:13

标签: ruby-on-rails mongodb mongoid

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

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

我有一个模型'Scheme',它嵌入了'Referals'。 “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文档完全遵循,所以不确定我做错了什么。 任何帮助非常感谢。

1 个答案:

答案 0 :(得分:3)

我认为你正在使用mongoid 3语法和gem的第2版。

错误消息表明需要mongoid 2索引语法:http://two.mongoid.org/docs/indexing.html

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

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