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 @@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 -~----------~----~----~----~------~----~------~--~---