【问题标题】:NameError uninitialized constant ApiAiRubyNameError 未初始化常量 ApiAiRuby
【发布时间】:2018-05-04 05:07:31
【问题描述】:

在 Beanstalk 上部署的 Ruby on Rails 应用程序出现 API AI / Dialog Flow Gem 错误:

NameError
uninitialized constant MessengerHireController::ApiAiRuby

我的 sidekiq Worker 中有以下代码:

dialog_client = ApiAiRuby::Client.new(
  :client_access_token => access_token, 
  :api_session_id => @freelancer.user.id
)
response = dialog_client.text_request msg

我已经在我的常规控制器中对其进行了测试,但它不起作用。

  1. 我已将其从工人移出并移至标准控制器。
  2. 它适用于我的本地,但不适用于 beanstalk
  3. 我在 beanstalk 上运行 rails 控制台并尝试了相同的代码,但它给了我错误。我使用gem install 'api-ai-ruby' 手动安装了gem,之后它停止在控制台上给我NameError,但仍然无法在生产环境中工作。
  4. 我检查了gem list,gem 已安装在生产环境中。

我最大的假设是应用程序无法找到已安装的 gem。

提前感谢您的帮助。

【问题讨论】:

  • 如何在生产环境中运行 sidekiq?喜欢sidekiqbundle exec sidekiq?例如,第一种方式可能无法加载已安装的 gem。
  • 我将该方法移至常规控制器,但仍然出现相同的错误。因此得出结论,问题不在于 Worker。

标签: ruby-on-rails amazon-elastic-beanstalk api-ai


【解决方案1】:

您需要将gem 'api-ai-ruby' 添加到您的gemfile,然后运行bundle install,否则Rails 不会加载它。 见What is the use of Gemfile in rails?

【讨论】:

  • 我做了那些事。它适用于我的本地,但不适用于生产(Beanstalk)
猜你喜欢
  • 1970-01-01
  • 2015-01-19
  • 2015-10-29
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2016-06-12
  • 2015-03-01
  • 2014-05-28
相关资源
最近更新 更多