【问题标题】:uninitialized constant Request (NameError)未初始化的常量请求(NameError)
【发布时间】:2023-03-28 18:49:01
【问题描述】:

当我尝试启动服务器 rails server 时出现此错误:/LiveToChallenge/config/initializers/gibbon.rb:1:in '<top (required)>': uninitialized constant Gibbon::Request (NameError)

app/config/initializers/gibbon.rb

require 'gibbon'
Gibbon::Request.api_key = "24e4a2233cd34debb76ed083dc3f8b5379-us8"
Gibbon::Request.timeout = 15

我按照gibbon gem 的说明进行操作,这似乎很简单。除了gem install gibbon 并将api_key 添加到初始化程序之外,也许我还缺少一些东西?

gem 安装为gibbon (2.2.2, 2.2.1, 1.2.1)

作为附加措施,我将 gem gibbon 放入 gemfile 并运行 bundle install

这个问题是我一直在努力解决的larger problem 的一部分。

【问题讨论】:

  • 你能试试用这个语法吗:Gibbon::Request.new(api_key: "your_api_key", timeout: 15) ?
  • 执行此操作,然后尝试在其下声明变量。当您尝试为其赋值时,该变量似乎仍未初始化
  • 不幸的是,即使在文件中声明了变量,也没有同样的错误。感谢您尝试@HristoGeorgiev
  • 您可能需要将require 'gibbon' 放在该文件的顶部,ruby 不知何故找不到Gibbon::Request 常量,这意味着它可能没有被rails 加载
  • @bjhaid 我按照你的建议添加了它,但仍然没有运气。更新问题

标签: ruby-on-rails ruby error-handling initializer gibbon


【解决方案1】:

我在gibbon 2.0 版本中遇到了同样的问题,因为它更新了一些初始化方法,然后我尝试了以前的版本并且它有效,但首先你应该这样尝试:

gibbon = Gibbon::Request.new(api_key: "MailChimp_API_Key")
gibbon.timeout = 10

如果在 app/config/initializers/gibbon.rb 中没有成功,那么您可以尝试在控制器中直接执行此操作,然后再使用 gibbon 检索或添加列表内容以进行测试。

【讨论】:

  • 知道了!必须按照您的建议将代码直接移动到控制器中:]
【解决方案2】:

您应该将 gem 添加到 rails Gemfile。然后,rails 将为您处理require 'gibbon'

编辑:gem install gibbon 只会在您的系统上安装 gem。除非您将它添加到 Gemfile,否则 Rails 不会知道它是必需的。

【讨论】:

  • 感谢 Sammygadd 的帮助!我添加了require 'gibbon',再次使用gem gibbon 运行捆绑安装,但仍然出现同样的错误:/
  • 当您运行bundle install 时,您看到输出中列出了长臂猿吗?
  • 是的,先生,我做到了。问题仍然存在
  • 对基本问题感到抱歉,但是您是否将 gem 添加到组中,例如测试或生产以及您在另一种模式下运行,例如发展?
  • 没问题 sammygadd。它不在生产、测试​​或开发组中。这是我的主要宝石清单
猜你喜欢
  • 1970-01-01
  • 2015-01-19
  • 2015-10-29
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2018-05-04
  • 2016-06-12
  • 2015-03-01
相关资源
最近更新 更多