gpt4 book ai didi

ruby-on-rails - 依赖于 Rails 初始化程序中的 fixture 数据

转载 作者:行者123 更新时间:2023-11-28 20:07:12 24 4
gpt4 key购买 nike

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

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

记录保证在数据库中:它是被其他模型引用的 fixture 数据。这工作正常,除了在每次测试运行之前清除数据库的测试环境中。 (我在边缘 rails 上运行,我认为这是最近的行为:我曾经能够手动插入数据并在测试运行之间保留它。)我的 regions.yml 中也有记录fixture 文件,但在 rails 初始化程序完成之前不会加载 fixtures。

处理这种对 fixture 数据的依赖的正确方法是什么?或者有更好的方法来构建它吗?我宁愿不使用 before_filter,因为在每个请求上重新加载它是没有意义的:它不会改变,除非在不同的部署上。

最佳答案

我会在 region.rb 中放这样的东西:

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

然后您可以在任何需要的地方以 Region.default_region 的形式访问它,而且它只会被查找一次 - 第一次调用 - 到那时固定装置就会就位。

关于ruby-on-rails - 依赖于 Rails 初始化程序中的 fixture 数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/562492/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com