There''s a part of my code that really needs to get the latest value from the database. But AR in Rails 2 seems to have some kind of caching, so if I execute a Model.find statement with the exact same arguments, it won''t go to the database, it''ll just return the same value it got last time? At least that''s the only way I can explain the weird behavior I am seeing. This seems like rather an evil thing to turn on by default, but at any rate, if I''m right about what''s going on... how do I disable this for an individual Model.find command, where I really need to get fresh data? Jonathan -- Posted via http://www.ruby-forum.com/. --~--~---------~--~----~------------~-------~--~----~ You received this message because you are subscribed to the Google Groups "Ruby on Rails: Talk" group. To post to this group, send email to rubyonrails-talk-/JYPxA39Uh5TLH3MbocFFw@public.gmane.org To unsubscribe from this group, send email to rubyonrails-talk+unsubscribe-/JYPxA39Uh5TLH3MbocFFw@public.gmane.org For more options, visit this group at http://groups.google.com/group/rubyonrails-talk?hl=en -~----------~----~----~----~------~----~------~--~---
On Dec 5, 3:37 pm, Jonathan Rochkind <rails-mailing-l...@andreas- s.net> wrote:> There''s a part of my code that really needs to get the latest value from > the database. > > But AR in Rails 2 seems to have some kind of caching, so if I execute a > Model.find statement with the exact same arguments, it won''t go to the > database, it''ll just return the same value it got last time?Actually, that''s only true during a single action (request-response cycle). Once your action is over, the cache is cleared.> At least that''s the only way I can explain the weird behavior I am > seeing. This seems like rather an evil thing to turn on by default, but > at any rate, if I''m right about what''s going on... how do I disable this > for an individual Model.find command, where I really need to get fresh > data?You should always be getting new data. If you need to get fresh data within an action, you can reload the model. @order.reload or @order.products(true) # reloads associated products collection> Jonathan > -- > Posted viahttp://www.ruby-forum.com/.Hope that helps? Jeff www.purpleworkshops.com --~--~---------~--~----~------------~-------~--~----~ You received this message because you are subscribed to the Google Groups "Ruby on Rails: Talk" group. To post to this group, send email to rubyonrails-talk-/JYPxA39Uh5TLH3MbocFFw@public.gmane.org To unsubscribe from this group, send email to rubyonrails-talk+unsubscribe@googlegroups.com For more options, visit this group at http://groups.google.com/group/rubyonrails-talk?hl=en -~----------~----~----~----~------~----~------~--~---
That does help, thanks. Sometimes I need fresh data within an action even. Or for my tests--should the sql querries be cached during tests? Is the semantics for what is cached when documented anywhere? I also discovered "ModelName.uncached do", which is helpful. But @individual_model.reload is good too, along with @individual_model.reset--although I''m not sure #reset will actually prevent re-use of the sql cache upon reload. Some documentation of all this stuff would be really helpful, if anyone who understands it for sure wants to write some. Jeff Cohen wrote:> > Actually, that''s only true during a single action (request-response > cycle). Once your action is over, the cache is cleared. > > You should always be getting new data. If you need to get fresh data > within an action, > you can reload the model. > > @order.reload > > or > > @order.products(true) # reloads associated products collection-- Posted via http://www.ruby-forum.com/. --~--~---------~--~----~------------~-------~--~----~ You received this message because you are subscribed to the Google Groups "Ruby on Rails: Talk" group. To post to this group, send email to rubyonrails-talk-/JYPxA39Uh5TLH3MbocFFw@public.gmane.org To unsubscribe from this group, send email to rubyonrails-talk+unsubscribe-/JYPxA39Uh5TLH3MbocFFw@public.gmane.org For more options, visit this group at http://groups.google.com/group/rubyonrails-talk?hl=en -~----------~----~----~----~------~----~------~--~---