是否有办法为web请求启用identity_map,但默认情况下在控制台或rake任务中关闭?这似乎让我绊倒了。
这是针对mongoid和rails。
答案 0 :(得分:1)
如果向上移动到mongoid 3.0.0.rc,则可以重写方法 using_identity_map 以提供您想要的内容。 注意事项。
配置/初始化/ identity_map.rb
module Mongoid
module UnitOfWork
def using_identity_map?
Mongoid.identity_map_enabled? && Threaded.identity_map_enabled? && (! defined? IRB) && ($0 !~ %r{rake})
end
end
end
的Gemfile
source 'https://rubygems.org'
gem 'rails', '3.2.3'
gem 'jquery-rails'
gem 'builder', '3.0.0'
gem 'mongoid', '3.0.0.rc'
gem 'bson_ext'
请注意,3.0.0的配置文件明显不同, 并且默认模板目前仅设置开发 并缺少测试和生产部分。
using_identity_map 方法在3.0.0之前不可用,例如2.4.10, 您必须通过.irbrc或Rakefile显式重置 identity_map_enabled 。