我有一个严重依赖日期的应用程序。根据当前日期设置这些日期需要进行适度昂贵的计算。就每个请求而言,这些日期是常量 - 它们一旦创建就不会改变 - 但它们在整个一周内都会改变。日期在控制器和模型中都使用。在rails中,在哪里放置一个基于当前日期变化的常量(变量?)?
我的问题是这样的:
- 如果日期没有每一天的变化,我能/设置它们的配置初始化。但是,当服务器重新启动
- ,如果我使用的before_filter设置在ApplicationController中的日期初始化,只能判断,日期是不提供给我的模型
任何想法?我看着这一切都错了吗?谢谢。
这是在正确的轨道上。您需要将日期设置为缓存键的一部分,以便在日期更改时自动缓存未命中。例如:https://gist.github.com/6c381274d6ad7a78b0d0- 在这种情况下,如果存在,则获取将返回“some_cache_key _#{Date.today}”。如果它还不存在,那么它会调用my_expensive_operation,然后将该方法的结果保存到“some_cache_key _#{Date.today}下的缓存中” – semanticart 2010-10-03 21:36:55
我最终使用了klew和Amadan的答案组合...所以现在我只需要每天生成一次日期。非常感谢大家,这是一个巨大的帮助。 – rxb 2010-10-04 02:37:54