升级到 Mongoid 5 后无法立即调用设计方法
Can't call devise methods as soon as I upgraded to Mongoid 5
下面是调用轨迹...
NoMethodError - undefined method `each_pair' for :primary_preferred:Symbol:
bson (3.2.4) lib/bson/document.rb:82:in `initialize'
mongo (2.1.1) lib/mongo/client.rb:192:in `read_preference'
/Users/Sagar/.rvm/rubies/ruby-2.2.1/lib/ruby/2.2.0/forwardable.rb:183:in `read_preference'
mongo (2.1.1) lib/mongo/collection.rb:104:in `read_preference'
/Users/Sagar/.rvm/rubies/ruby-2.2.1/lib/ruby/2.2.0/forwardable.rb:183:in `read_preference'
mongo (2.1.1) lib/mongo/collection/view/readable.rb:411:in `default_read'
mongo (2.1.1) lib/mongo/collection/view/readable.rb:300:in `read'
mongo (2.1.1) lib/mongo/collection/view/iterable.rb:40:in `block in each'
mongo (2.1.1) lib/mongo/retryable.rb:46:in `read_with_retry'
mongo (2.1.1) lib/mongo/collection/view/iterable.rb:39:in `each'
mongoid (5.0.0) lib/mongoid/query_cache.rb:207:in `each'
mongoid (5.0.0) lib/mongoid/contextual/mongo.rb:240:in `block in first'
mongoid (5.0.0) lib/mongoid/contextual/mongo.rb:489:in `try_cache'
mongoid (5.0.0) lib/mongoid/contextual/mongo.rb:239:in `first'
mongoid (5.0.0) lib/mongoid/contextual.rb:20:in `first'
orm_adapter (0.5.0) lib/orm_adapter/adapters/mongoid.rb:22:in `get'
devise (3.4.1) lib/devise/models/authenticatable.rb:214:in `serialize_from_session'
devise (3.4.1) lib/devise.rb:467:in `block (2 levels) in configure_warden!'
warden (1.2.3) lib/warden/session_serializer.rb:34:in `fetch'
warden (1.2.3) lib/warden/proxy.rb:212:in `user'
warden (1.2.3) lib/warden/proxy.rb:318:in `_perform_authentication'
warden (1.2.3) lib/warden/proxy.rb:104:in `authenticate'
devise (3.4.1) lib/devise/controllers/helpers.rb:120:in `current_user'
devise (3.4.1) lib/devise/controllers/helpers.rb:116:in `user_signed_in?'
在 Mongoid 4.2 上一切都运行良好,一旦将 Mongoid 升级到 5.0.0,我就找到了这个!
你能帮我解决这个问题吗?不知道如何调试它。
提前谢谢你。
Mongoid 5 好像有点不一样mongoid.yml
我有以下mongoid.yml
development:
clients:
default:
database: db-name
hosts:
- localhost:27017
options:
read: :primary_preferred
当我如下将值从 :primary_preferred
更改为 read:
到 {mode: :primary_preferred}
时,成功了!
development:
clients:
default:
database: db-name
hosts:
- localhost:27017
options:
read:
mode: :primary_preferred
下面是调用轨迹...
NoMethodError - undefined method `each_pair' for :primary_preferred:Symbol:
bson (3.2.4) lib/bson/document.rb:82:in `initialize'
mongo (2.1.1) lib/mongo/client.rb:192:in `read_preference'
/Users/Sagar/.rvm/rubies/ruby-2.2.1/lib/ruby/2.2.0/forwardable.rb:183:in `read_preference'
mongo (2.1.1) lib/mongo/collection.rb:104:in `read_preference'
/Users/Sagar/.rvm/rubies/ruby-2.2.1/lib/ruby/2.2.0/forwardable.rb:183:in `read_preference'
mongo (2.1.1) lib/mongo/collection/view/readable.rb:411:in `default_read'
mongo (2.1.1) lib/mongo/collection/view/readable.rb:300:in `read'
mongo (2.1.1) lib/mongo/collection/view/iterable.rb:40:in `block in each'
mongo (2.1.1) lib/mongo/retryable.rb:46:in `read_with_retry'
mongo (2.1.1) lib/mongo/collection/view/iterable.rb:39:in `each'
mongoid (5.0.0) lib/mongoid/query_cache.rb:207:in `each'
mongoid (5.0.0) lib/mongoid/contextual/mongo.rb:240:in `block in first'
mongoid (5.0.0) lib/mongoid/contextual/mongo.rb:489:in `try_cache'
mongoid (5.0.0) lib/mongoid/contextual/mongo.rb:239:in `first'
mongoid (5.0.0) lib/mongoid/contextual.rb:20:in `first'
orm_adapter (0.5.0) lib/orm_adapter/adapters/mongoid.rb:22:in `get'
devise (3.4.1) lib/devise/models/authenticatable.rb:214:in `serialize_from_session'
devise (3.4.1) lib/devise.rb:467:in `block (2 levels) in configure_warden!'
warden (1.2.3) lib/warden/session_serializer.rb:34:in `fetch'
warden (1.2.3) lib/warden/proxy.rb:212:in `user'
warden (1.2.3) lib/warden/proxy.rb:318:in `_perform_authentication'
warden (1.2.3) lib/warden/proxy.rb:104:in `authenticate'
devise (3.4.1) lib/devise/controllers/helpers.rb:120:in `current_user'
devise (3.4.1) lib/devise/controllers/helpers.rb:116:in `user_signed_in?'
在 Mongoid 4.2 上一切都运行良好,一旦将 Mongoid 升级到 5.0.0,我就找到了这个!
你能帮我解决这个问题吗?不知道如何调试它。 提前谢谢你。
Mongoid 5 好像有点不一样mongoid.yml
我有以下mongoid.yml
development:
clients:
default:
database: db-name
hosts:
- localhost:27017
options:
read: :primary_preferred
当我如下将值从 :primary_preferred
更改为 read:
到 {mode: :primary_preferred}
时,成功了!
development:
clients:
default:
database: db-name
hosts:
- localhost:27017
options:
read:
mode: :primary_preferred