Thanks, I just read http://www.ruby-forum.com/topic/133234 which is also very clear.
I'll just store that Post of the Day inside an ActiveRecord model. On Tue, Apr 28, 2009 at 8:59 AM, Frederick Cheung < frederick.che...@gmail.com> wrote: > > > > On Apr 27, 11:49 pm, Commander Johnson <commanderjohn...@gmail.com> > wrote: > > class PostOfTheDay > > private > > > > def self.current_day > > DateTime.now.utc.to_date > > end > > > > @@current_post = nil > > @@current_day = current_day > > > > def self.get_random_post > > posts = Post.all > > > > posts[rand(posts.size)] > > end > > > > public > > > > def self.fetch > > if @@current_post.nil? || @@current_day != current_day > > @@current_post = get_random_post > > @@current_day = current_day > > end > > > > return @@current_post > > end > > end > > > > I would expect the class variables @@current_post and @@current_day to > never > > change when not accessed. However, in development mode, on each request, > a > > different Post is returned because either the Klazz has been garbage > > collected (?) or the initializers > > > In development mode classes are cleaned out and loaded from scratch on > each request (this is why you don't need to restart the server to see > changes. In production this isn't true. > > Fred > > > @@current_post = nil > > @@current_day = current_day > > > > have been re-run. But isn't it required to initialize a class variable > > before usage? > > > > Why is this the default behaviour? Any pointers on a different approach? > > > --~--~---------~--~----~------------~-------~--~----~ 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@googlegroups.com To unsubscribe from this group, send email to rubyonrails-talk+unsubscr...@googlegroups.com For more options, visit this group at http://groups.google.com/group/rubyonrails-talk?hl=en -~----------~----~----~----~------~----~------~--~---