1
从config/mongoid.yml
文件中看不到identity_map
设置。Mongoid Identity Map设置在Rails控制台中不起作用
这里的文件:
development:
sessions:
default:
uri: mongodb://localhost:27017/test_development
options: &defaultopts
op_timeout: 60
allow_dynamic_fields: false
identity_map_enabled: true
preload_models: true
raise_not_found_error: false
当这是通过RAILS_ENV=development rails console
跑地图未开启:
$ RAILS_ENV=development rails c
Loading development environment (Rails 3.2.13)
[1] pry(main)> Mongoid.using_identity_map?
=> false
[2] pry(main)> Mongoid.identity_map_enabled?
=> false
即使尝试手动加载Mongoid
和文件都不会改变:
[3] pry(main)> require 'mongoid'
=> false
[4] pry(main)> Mongoid.load!("./config/mongoid.yml")
=> {"sessions"=>
{"default"=>
{"uri"=>"mongodb://localhost:27017/test_development",
"options"=>
{"op_timeout"=>60,
"allow_dynamic_fields"=>false,
"identity_map_enabled"=>true,
"preload_models"=>true,
"raise_not_found_error"=>false}}}}
[5] pry(main)> Mongoid.using_identity_map?
=> false
[6] pry(main)> Mongoid.identity_map_enabled?
=> false
仅当我手动设置值时才会生效:
[8] pry(main)> Mongoid.identity_map_enabled = true
=> true
[9] pry(main)> Mongoid.using_identity_map?
=> true
[10] pry(main)> Mongoid.identity_map_enabled?
=> true
为什么设置未正确加载?
这个问题发生在使用Rails 3.2.13和Mongoid 3.1.2。
Mongoid文档似乎直接违背了你的断言:':options'不应该嵌套在':default'中:http://mongoid.org/en/mongoid/docs/installation.html。 – cbmanica 2013-05-30 23:04:21
@cbmanica有多种选项可以设置,我编辑我的答案突出显示。在[documentation](http://mongoid.org/en/mongoid/docs/installation.html)中查看“Mongoid配置剖析”部分,了解多个选项设置的多个选项的示例。 – jwieringa 2013-05-31 23:57:16