Ruby on rails 3 reload using cached data

Using the activerecord reload command in my application seems to use cached data when called.

I can replicate inside the debugger by doing the following.

u = User.find(1)
u.first_name
#outputs bob

# manually change first_name for record 1 to jim with PGadmin or with rails console

u.reload
u.valid?
#outputs true
u.first_name
#outputs bob

#if i do this again
u = User.find(1)
#old data again
u.first_name
#outputs bob

#if i load data this way
u = User.where('id = 1').first
#new data
u.first_name 
#outputs jim

When viewing a log file after a reboot, it gives

[1m [35mCACHE (0.0ms) [0m SELECT "users". * FROM "users" WHERE ("users". "Id" = 1) LIMIT 1

So it looks like cache is being used

My environment: Rails 3.0.3, Ruby 1.8.7, Ubuntu 10.04, PostgreSQL 8.4

+3
source share
2 answers

You need to make a record (for example, calling saveon some model) so that the request cache explodes.

development.log, reload, ActiveRecord SELECT. User.find(1).

, - . , , :

ActiveRecord::Base.uncached do
  User.find(1)
end
+8

, . , .

0

All Articles