/ / Mongoid 3.0.0未定義メソッドMongoidのための `master ':Module - mongoid

Mongoid 3.0.0未定義メソッドMongoidのための `master ':モジュール - mongoid

 Mongoid.master.collection("seq").find_and_modify({
:query  => {:_id   => self.class.name},
:update => {"$inc" => {:next => 1}},
:new    => true,
:upsert => true
})["next"]

mongoid 2.4.9ではうまく動作しますが、mongoid 3.0.0を使用するとエラーが発生します

NoMethodError in PostsController#new

undefined method `master" for Mongoid:Module

Mongoid 3.0.0はMongoid.masterをサポートしていませんか?

回答:

回答№1の場合は3

Mongoid 3.0.0はMongo Ruby Driverの代わりにMopedを使用していたので、古いAPIは呼び出すことができません。

あなたはこれを試すことができます:

Mongoid::Sessions.default.command({:findAndModify => "seq",
:query  => { :_id => self.class.name },
:update => { "$inc" => { :next => 1 } },
:upsert => true,
:new    => true })

そして、このGemを使って自動増分ID機能を実行することができます: https://github.com/huacnlee/mongoid_auto_increment_id