2012-04-22 10 views
5

セットアップする必要があります。のキーは、文字列や記号

は、私はそれは私が彼らの両方が様々な方法でシンボルを拡張するので、私はDataMapperのとmongoid間の衝突に気付きました

(DataMapperのでanoherサーバからデータを移植)mongid以外に使用していますDataMapperのとは何かを持っていると思います、asc、descなどこれは同じ問題でしょうか?ここで

は私のスタックトレースからの抜粋である、それは任意のヘルプの場合:mongoid_orderableの

keys must be strings or symbols 
/Users/hmm/.rbenv/versions/1.9.2-p290/lib/ruby/gems/1.9.1/gems/bson-1.6.2/lib/bson/bson_c.rb:24:in `serialize' 
/Users/hmm/.rbenv/versions/1.9.2-p290/lib/ruby/gems/1.9.1/gems/bson-1.6.2/lib/bson/bson_c.rb:24:in `serialize' 
/Users/hmm/.rbenv/versions/1.9.2-p290/lib/ruby/gems/1.9.1/gems/mongo-1.6.2/lib/mongo/collection.rb:436:in `update' 
/Users/hmm/.rbenv/versions/1.9.2-p290/lib/ruby/gems/1.9.1/gems/mongoid-2.4.8/lib/mongoid/collections/master.rb:25:in `block in update' 
/Users/hmm/.rbenv/versions/1.9.2-p290/lib/ruby/gems/1.9.1/gems/mongoid-2.4.8/lib/mongoid/collections/retry.rb:29:in `retry_on_connection_failure' 
/Users/hmm/.rbenv/versions/1.9.2-p290/lib/ruby/gems/1.9.1/gems/mongoid-2.4.8/lib/mongoid/collections/master.rb:24:in `update' 
/Users/hmm/.rbenv/versions/1.9.2-p290/lib/ruby/gems/1.9.1/gems/mongoid-2.4.8/lib/mongoid/collection.rb:149:in `update' 
/Users/hmm/.rbenv/versions/1.9.2-p290/lib/ruby/gems/1.9.1/gems/mongoid_orderable-1.0.0/lib/mongoid_orderable/mongoid/contexts/mongo.rb:6:in `inc' 
/Users/hmm/.rbenv/versions/1.9.2-p290/lib/ruby/gems/1.9.1/gems/mongoid_orderable-1.0.0/lib/mongoid_orderable/mongoid/criteria.rb:1:in `inc' 
/Users/hmm/.rbenv/versions/1.9.2-p290/lib/ruby/gems/1.9.1/gems/mongoid_orderable-1.0.0/lib/mongoid/orderable.rb:125:in `apply_position' 
/Users/hmm/.rbenv/versions/1.9.2-p290/lib/ruby/gems/1.9.1/gems/mongoid_orderable-1.0.0/lib/mongoid/orderable.rb:85:in `add_to_list' 
/Users/hmm/.rbenv/versions/1.9.2-p290/lib/ruby/gems/1.9.1/gems/activesupport-3.2.2/lib/active_support/callbacks.rb:419:in `block in _run__3008157942946527494__save__4591629889417243504__callbacks' 
/Users/hmm/.rbenv/versions/1.9.2-p290/lib/ruby/gems/1.9.1/gems/activesupport-3.2.2/lib/active_support/callbacks.rb:215:in `block in _conditional_callback_around_742' 

現在の実装は以下の通りです:

class MyModel 
    include Mongoid::Document 
    include Mongoid::Orderable 
    default_scope order_by(:position => :asc) 
end 

私は基づい_mongoid_orderable_に関連するかなり確信しています私が_mongoid_orderable_関連する行をコメントアウトすると動作するということです。また、問題を提出したhere

答えて

5

解決しました。

これは私のように、モンゴイドとDataMapperとの衝突でした。 mongoid_orderableのいくつかの行を変更して解決しました。

誰もがこの問題つまずく場合DataMapperのとMongoid両方がgte, gt, lt, lteなどの事業者など

でシンボルを拡張しているので、それはちょうどmongoids代替構文を使用して、このcollissionを回避するためである。

の代わり:

order_by(:created_at.desc) 

where(:type.ne => 'Class') 

これを使用します。

order_by(:created_at => :desc) 

where(:type => {'$ne' => 'Class'}) 
関連する問題