Loading [MathJax]/jax/output/CommonHTML/config.js
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >问答首页 >如何将一个初始化文件中定义的常量访问到rails中的另一个初始化文件?

如何将一个初始化文件中定义的常量访问到rails中的另一个初始化文件?
EN

Stack Overflow用户
提问于 2019-05-22 00:21:45
回答 1查看 132关注 0票数 1

我定义了一个类似于这个throttling_request.yml的YAML文件

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
logged_in_user:
  watching_timespan: 60
  allowed_requests:  60
  blocking_timespan: 300

non_logged_in_user:
  watching_timespan: 300
  allowed_requests:  300

我在config/intializers/throttle_config.rb中加载YML文件

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
config = YAML.load_file('config/throttling_request.yml').with_indifferent_access
THROTTLE_REQ_NON_LOGGED_IN = config[:non_logged_in_user]
THROTTLE_REQ_LOGGED_IN     = config[:logged_in_user]

但是我想将这个常量THROTTLE_REQ_NON_LOGGED_IN访问到另一个初始化程序文件config/initializers/rack_attack.rb中。

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
  configs = ::THROTTLE_REQ_NON_LOGGED_IN

  # Throttle all requests by IP (20rpm)
  #
  # Key: "rack::attack:#{Time.now.to_i/:period}:req/ip:#{req.ip}"
  throttle('req/ip', limit: configs[:allowed_requests], period: configs[:watching_timespan]) do |req|
    req.ip unless req.path.start_with?('/assets')
  end

对于常量::,我不能使用或不带作用域解析操作符THROTTLE_REQ_NON_LOGGED_IN来加载。我想在机架攻击配置中使用常量THROTTLE_REQ_LOGGED_IN作为我的另一个类和THROTTLE_REQ_NON_LOGGED_IN。因此,我不想混淆调用这个常数在机架攻击初始化文件。

如果需要我提供任何其他信息,请告诉我。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2019-05-22 01:40:31

建议的解决方案

在您的application.rb中执行以下操作:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
::THROTTLE_CONFIG = YAML.load_file('config/throttling_request.yml').with_indifferent_access

现在,在项目的任何地方,包括config/initializers/rack_attack.rb,您都可以这样做:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
THROTTLE_CONFIG[:non_logged_in_user]
票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/56252317

复制
相关文章
python接口测试:在一个用例文件中调用另一个用例文件中定义的方法
在进行接口测试时,经常会遇到不同接口间传递参数的情况,即一个接口的某个参数需要取另一个接口的返回值;
冰霜
2022/03/19
2.9K0
python接口测试:在一个用例文件中调用另一个用例文件中定义的方法
Hexo中引入另一个文件内容
程序员朱永胜
2023/09/15
1450
索引groupBox中的RadioButton到配置文件中,初始化自动索引——c#
如下代码,我在关闭窗体是把RadioButton的当前索引值存到ini文件中        ridioButtonIndex = 0; foreach (Control con in groupBoxClear.Controls) { if (con is RadioButton) { if ((con as RadioButton).Checked)
vv彭
2021/01/05
7140
索引groupBox中的RadioButton到配置文件中,初始化自动索引——c#
cmd - 如何在bat文件中调用另一个bat文件
有时候我们需要在一个bat文件中调用另一个bat文件,比如我们想在a.bat中调用b.bat,如下。
雨临Lewis
2022/01/11
4.2K0
问与答61: 如何将一个文本文件中满足指定条件的内容筛选到另一个文本文件中?
Q:如下图1所示,一个名为“InputFile.csv”文件,每行有6个数字,每个数字使用空格分隔开。
fanjy
2019/07/23
4.3K0
python练习之查找一个文件中的字符串是否在另一个文件中存在
不得不说正则是个好东西。 没错这次又用到正则表达式。 直接上代码: # -*- coding: UTF-8 -*- import re #使用正则库 # 打开文件 fo = open("hello.txt", "r"); co = open("world.txt", "r"); colines = co.readlines(); #读取所有world文件中的行
李小白是一只喵
2020/04/24
5.3K0
python练习之查找一个文件中的字符串是否在另一个文件中存在
PHP中的预定义常量
3、__CLASS__: 类的名称(PHP 4.3.0 新加)。自 PHP 5 起本常量返回该类被定义时的名字(区分大小写)。在 PHP 4 中该值总是小写字母的。
用户7657330
2020/08/14
2.2K0
Java中的静态初始化和非静态初始化
Java与C++的一个不同之处在于,Java不仅有构造函数,还有一个“初始化块”(Initialization Block)的概念。Java中的初始化块在创建Java对象时隐式执行,并且是在构造函数之前执行。
Tyan
2019/05/25
2.8K0
javaSE之如何将一个文件复制到另一个文件
1 /* 2 * (1). 文件字符输入,输出流 3 * 文件字节输入,输出流的read和write方法使用 4 * 字节数组读写数据,即以字节为单位处理数据,因此,字节流不能很好的操作Unicode字符 5 * ,比如,一个汉字在文件中占用2个字节,如果使用字节流,读取不当会出现“乱码”现象 6 * (2).字符输入流和输出流的read和write方法 7 * 使用字符数组读写数据,即以字符为基本单位处理数据 8 * 9
Gxjun
2018/03/22
1.7K0
PHP中的预定义常量和魔术常量
返回文件的完整路径和文件名。如果用在包含文件中,则返回包含文件名。自 PHP 4.0.2 起,__FILE__ 总是包含一个绝对路径,而在此之前的版本有时会包含一个相对路径。
用户7657330
2020/08/14
4.4K0
java定义数组变量初始化为0_java中怎么数组初始化?
//数组定义最方便的就是用for循环来做定义,数组下标是从e69da5e6ba9062616964757a686964616f313333656462620开始,到11的话就是12个数字。要输出的话可以用以//号注释掉的后面的一句if(i<12){System.out.println(x[i]);}当然也可以自己再写一个for循环语句来输出,不过我觉得这有点画蛇添足了
全栈程序员站长
2022/09/27
1.3K0
linux(十一)之初始化文件
前面写了很多linux的知识,其实很多都是命令的,所以要去多多的练习才能学的更好,加油为了好工作。 要么现在懒惰,未来讨饭。要么现在努力,未来惬意。 一、初始化文件概述  1.1、概述   系统初始化文件是给系统做配置信息的,最重要的系统信息是环境变量的配置。   初始化文件分为系统级别和用户级别在shell为bash时:   1)系统级别的初始化文件:           针对所有用户都有效果的。                 /etc/profile        2)用户级别的初始化文件:    
用户1195962
2018/01/18
1.3K0
linux(十一)之初始化文件
实现经常使用的配置文件/初始化文件读取的一个C程序[通俗易懂]
这些文件通常后缀名为.ini或者.conf。能够直接用记事本打开。里面会存储一些程序參数,在程序中直接读取使用。比如,计算机与server通信。server的ip地址,段口号能够存储于ini文件里。这样假设我想换另外一台server时。直接将ini文件里的ip地址改变就可以。程序源码不须要做不论什么改动。
全栈程序员站长
2022/07/10
3610
html中引入调用另一个公用html模板文件的方法
查了一下资料,发现html中引入调用另一个html的方法有很多种,我都尝试了一下,就把他们都列出来吧: 其中推荐第一种和第六种,因为代码太长就写在最后了。其他的方法,可以自己尝试,看是不是适合你当前项目。
德顺
2019/11/13
8.5K0
html中引入调用另一个公用html模板文件的方法
【java基础☞初始化顺序】java继承中的初始化顺序
1、初始化顺序:父类的静态变量-->父类的静态代码块-->子类的静态变量-->子类的静态代码快-->父类的非静态变量(父类的非静态代码块)-->父类的构造函数-->子类的非静态变量(子类的非静态代码块)-->子类的构造函数
用户5640963
2019/07/25
1K0
linux中复制文件夹到另一个文件夹_linux 文件夹复制
https://blog.csdn.net/weixin_43820866/article/details/90453951
全栈程序员站长
2022/09/25
28K0
linux中复制文件夹到另一个文件夹_linux 文件夹复制
Docsify 初始化文件夹
你可以在命令行中运行: docsify init ./ 来对文件夹进行初始化 你可用看到界面: C:\WorkDir\Repository\cwiki-us-docs\spring-boot-docs>docsify init ./ Initialization succeeded! Please run docsify serve ./ C:\WorkDir\Repository\cwiki-us-docs\spring-boot-docs> 初始化成功后,会创建: README.md index.
HoneyMoose
2020/09/11
5110
Java 中类的初始化过程
1 遇到 new getstatic putstatic 和 invokestatic 这 4 条指令时,这4 条指定分别对应使用 new 关键字创建对象,读取和设置一个静态字段(被 final 修饰的静态字段除外,因为已经在编译期间把结果放到常量池中了)和调用一个类的静态方法 。
良月柒
2019/03/19
6730
Java中变量的初始化顺序
在写一个通用的报警模块时,遇到一个有意思的问题,在调用静态方法时,发现静态方法内部对静态变量引用时,居然抛出了npe,仿佛是因为这个静态变量的初始化在静态方法被调用时,还没有触发,从而导致这个问题,因此今天专门来学习下静态成员的初始化顺序,以及上面这个问题导致的原因
一灰灰blog
2022/01/17
1.2K0
Java中变量的初始化顺序
点击加载更多

相似问题

RAILS YML文件未初始化常量问题

12

Rails:初始化器中的常量

10

初始化程序中未初始化的Rails常量

10

在Rails初始化器中延迟定义常量

12

NameError:未初始化的常量自定义作业文件Rails 6

17
添加站长 进交流群

领取专属 10元无门槛券

AI混元助手 在线答疑

扫码加入开发者社群
关注 腾讯云开发者公众号

洞察 腾讯核心技术

剖析业界实践案例

扫码关注腾讯云开发者公众号
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
查看详情【社区公告】 技术创作特训营有奖征文