Forum: Ruby on Rails Time.now cached in model association?

Announcement (2017-05-07): www.ruby-forum.com is now read-only since I unfortunately do not have the time to support and maintain the forum any more. Please see rubyonrails.org/community and ruby-lang.org/en/community for other Rails- und Ruby-related community platforms.
Yanni M. (Guest)
on 2009-04-16 17:53
I have an object that has_many widgets, but I only want the widgets that
are not expired associated with this object.  My app is showing widgets
that are expired, so the date must be getting cached.  Anyone got a
simple workaround for this?  Is there some way to expire the cache every
24 hours, or force it to use the current Time.now every time it looks at
this association?  Any help would be greatly appreciated.  I could check
it in the view or the controller but that seems like a pretty messy
solution.  Let me know if you all have any ideas.  Thanks!!

has_many :widgets, :conditions =>
"expiration>='#{Time.now.beginning_of_day.strftime("%Y-%m-%d")}'"
Yanni M. (Guest)
on 2009-04-16 17:55
Note:  I am using rails version 1.2.3
Frederick C. (Guest)
on 2009-04-16 18:09
(Received via mailing list)
On 16 Apr 2009, at 14:53, Yanni M. wrote:

> this association?  Any help would be greatly appreciated.  I could
> check
> it in the view or the controller but that seems like a pretty messy
> solution.  Let me know if you all have any ideas.  Thanks!!
>
> has_many :widgets, :conditions =>
> "expiration>='#{Time.now.beginning_of_day.strftime("%Y-%m-%d")}'"

Caching isn't really what's happening. That line is evaluated
precisely once, and so that string interpolation happens once. I wrote
a bit about this and similar problems at
http://www.spacevatican.org/2008/11/9/do-you-know-...

Fred
Yanni M. (Guest)
on 2009-04-16 18:56
You are the man Fred!  Exactly what I needed.  Thanks!!
This topic is locked and can not be replied to.