I hate to reply to myself, but I narrowed it down to Rails caching by 
DEFAULT of model queries.  It can be worked around by passing 'true', like 
this:


tc.name = "something different"

tc.save!

tp.test_children.map {|x| x.name }.to_sentence # => "test1, test2, test3, 
and test4" *WRONG*

tp.test_children(true).map {|x| x.name }.to_sentence # => "test1, test2, 
test3, and something different" *CORRECT*


Another workaround is to just stop using has_many and such in favor of 
manual functions, a la:

 def test_children

  return TestChild.where(["test_parent_id = ?", self.id])

 end


Is there a way to turn this sort of caching off globally?  (Other caching 
is fine, I don't want to turn all caching off.)


BTW- It is a bit mind blowing that this is turned on by default.  Possible 
data corruption shouldn't ever be preferred by default over (possible) 
speed gains.  I'd still categorize this as a serious bug, at least as a 
configuration default.


Thanks!


Phil

-- 
You received this message because you are subscribed to the Google Groups "Ruby 
on Rails: Talk" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to [email protected].
To post to this group, send email to [email protected].
To view this discussion on the web visit 
https://groups.google.com/d/msgid/rubyonrails-talk/07598962-8e07-4518-b733-835d7b04eaaa%40googlegroups.com.
For more options, visit https://groups.google.com/d/optout.

Reply via email to