2

私は信じられないほど単純な問題を抱えています。何が間違っているのかわかりません。モンゴにとってかなり新しい

Rails 3.2.6 を MongoDB と Mongoid で使用する。埋め込みフィールドにインデックスを追加しようとしています。

「Referals」が埋め込まれたモデル「Scheme」があります。「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 に答える