2012-07-04 4 views
2

Я получаю что-то невероятно простое и не уверен, что я делаю неправильно. Довольно неожиданно для MongoMongo/Rails Mongoid index on embedded field

Использование 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 

, когда я бегу «грабли БД: 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 точно, поэтому не уверен, что я я делаю неправильно. Любая помощь очень ценится.

ответ

3

Я думаю, вы используете синтаксис mongoid 3 с версией 2 драгоценного камня.

сообщение об ошибке указывает на то, что синтаксис индекса Mongoid 2 ожидается: http://two.mongoid.org/docs/indexing.html

Вы пытаетесь использовать индекс Mongoid 3 синтаксис: http://mongoid.org/en/mongoid/docs/indexing.html

Проверьте, какая версия драгоценный камень, который вы используете и настроить синтаксис соответственно.