= IdentityMap Adds simple hand controlled identity map for ActiveRecord. == Installing in Rails 2.3 in config/environment.rb config.gem 'ar-simple-idmap', :lib => 'identity_map' in Rails 3 in Gemfile gem 'ar-simple-idmap', :require => 'identity_map' == Enabling To enable in ApplicationController (it is not enabled by default). class ApplicationController < ActionController::Base use_identity_map #(installs around filter) # or use_identity_map :only=>[:index, :show] # or use_identity_map :except=>[:update] end If you decide to disable filter in sub controllers: class ClientController < ApplicationController dont_use_identity_map :only=>[:save, :update, :messy_action] end Then you should enable identity map for each model class individually: class TarifPlan < ActiveRecord::Base use_id_map has_many :clients end class Client < ActiveRecord::Base use_id_map belongs_to :tarif_plan end You can use identity map for all models by writing in initializer: class ActiveRecord::Base use_id_map end To enable in rake task or script: ActiveRecord::Base.with_id_map do # all things here goes with identity map end or equivalently Client.with_id_map do # all things here goes with identity map # not only for Client end If you found that identity logic does wrong thing in some particular place, you could temporary disable it: ActiveRecord::Base.without_id_map do # all things here goes without identity map end Client.without_id_map do # all things here goes without identity map # not only for Client end class ClientsController def strange_action without_identity_map do do_strange_things_without_identity_map end end end == Copyright inspired by http://github.com/pjdavis/identity-map Copyright (c) 2010 Sokolov Yura aka funny_falcon, released under the MIT license.
Project
ar-simple-idmap
Add simple finegrained handcontrolled identity map for ActiveRecord
2005
2006
2007
2008
2009
2010
2011
2012
2013
2014
2015
2016
2017
2018
2019
2020
2021
2022
2023
2024
Development
Dependencies
Runtime
>= 0
Project Readme