caching database result

Hi guys, Has ActiveRecord 3 a more complex cache mechanism than version released with Ruby on Rails 2.0 ?

And has ActiveRecord the concept of "scope of object identity?"

obj1 = MyModel.find(1) obj2 = MyModel.find(1)

results in two selects and two different object in memory, why?

Where I could find clear and detailed info about these topics?

Hi guys, Has ActiveRecord 3 a more complex cache mechanism than version released with Ruby on Rails 2.0 ?

And has ActiveRecord the concept of "scope of object identity?"

obj1 = MyModel.find(1) obj2 = MyModel.find(1)

results in two selects and two different object in memory, why?

Because it's not trying to do anything different (the select itself will be cached). The subject comes up every now and again, but activerecord does not yet have an identity map

Fred

Quoting Vogon Primo <lists@ruby-forum.com>:

Hi guys, Has ActiveRecord 3 a more complex cache mechanism than version released with Ruby on Rails 2.0 ?

And has ActiveRecord the concept of "scope of object identity?"

obj1 = MyModel.find(1) obj2 = MyModel.find(1)

results in two selects and two different object in memory, why?

Where I could find clear and detailed info about these topics?

The objects are the results of selects. Some other program may have changed the value in between. So the values may be different. Rails does know what other programs are accessing the database. Only the database server knows. And it can cache the result. So two calls to the DB, possibly two different results.

Jeffrey