代码之家  ›  专栏  ›  技术社区  ›  Andrew Vit

rails初始化器对夹具数据的依赖

  •  2
  • Andrew Vit  · 技术社区  · 17 年前

    我有一个初始化器,它设置了一个在整个应用程序中使用的默认值。该值是一个ActiveRecord模型,我基本上是在应用程序的生命周期内缓存它:

    @@default_region = Region.find_by_uri("whistler")
    

    regions.yml

    如何正确处理对夹具数据的这种依赖?还是有更好的方法来构建这个?我宁愿不使用before_filter,因为在每次请求时重新加载它是没有意义的:除非在不同的部署中,否则它不会改变。

    2 回复  |  直到 17 年前
        1
  •  2
  •   Sarah Mei    17 年前

    def self.default_region
      @@default_region ||= Region.find_by_uri("whistler")
    end
    

    然后,您可以在任何需要的地方以Region.default_Region的身份访问它,并且它只会被查找一次——第一次被调用——到那时,设备就会就位。

        2
  •  1
  •   bobwienholt    17 年前

    不太熟悉Ruby或Rails。..但你为什么不尝试“延迟加载”场景呢?基本上,有一个全局函数来检查数据是否已加载,如果没有,则从数据库中获取数据,然后缓存它。如果已经缓存,则只需返回它。

    这样,在第一次调用该函数之前,您将不会尝试访问数据库,届时所有内容都应该初始化。

    推荐文章