加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

ruby-on-rails – 在我的Rails控制器中将YAML文件作为常量加载是

发布时间:2020-12-17 01:46:16 所属栏目:百科 来源:网络整理
导读:我有几个大型数组需要可用于特定视图.目前我将这些存储在YAML文件中并加载到控制器常量中,如下所示. 我假设当Rails在环境设置期间加载文件时,这个常量存储在内存中,但是我的偏执部分想知道每次访问该控制器时我是否都在访问文件系统.有人可以建议这方面的最
我有几个大型数组需要可用于特定视图.目前我将这些存储在YAML文件中并加载到控制器常量中,如下所示.

我假设当Rails在环境设置期间加载文件时,这个常量存储在内存中,但是我的偏执部分想知道每次访问该控制器时我是否都在访问文件系统.有人可以建议这方面的最佳做法吗?

class OnboardingController < ApplicationController

  BRANDS = YAML.load(File.open("#{Rails.root}/config/brands.yml",'r'))
  STORES = YAML.load(File.open("#{Rails.root}/config/stores.yml",'r'))

  # ...

解决方法

I assume that this constant is stored in memory when Rails loads
the file during environment setup

是的,当文件被加载/需要时,那里的所有东西都被执行了
和分配.因此它只加载一次.

but the paranoid part of me wonders if I’m hitting the filesystem
each time that controller is accessed.

部分正确,在开发模式下,每个常量都没有设置
请求,但这在生产中无关紧要.

Can anyone suggest best practices in this area?

保持原样,缓存只将解析转发给第一个请求而不是在启动时,因为老工人你有时间还在运行

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读