ruby - 在 Rails 3 Controller 中需要 gem 失败,出现 "Constant Missing"

标签 ruby ruby-on-rails-3 bundler

我在其他线程中看到过几次这个问题,但似乎没有一个答案适用。

环境: 轨道 3 来自 jugend 的 amazon/ecs gem。单独的文件在这里: http://github.com/jugend/amazon-ecs/blob/master/lib/amazon/ecs.rb

我的 gemfile 有: gem 'amazon-ecs', :git => 'git://github.com/jugend/amazon-ecs.git'

在 irb 中一切正常。我可以跑: bundle 控制台 需要'amazon/ecs'然后去镇上

当我尝试从 Controller 使用它时,就像这样: 需要“亚马逊/ECS”

require 'amazon/ecs'

class SearchController < ApplicationController
  def index    
  end

  def results
    Amazon::Ecs.configure do |options|
        options[:aWS_access_key_id] = '[key]'
        options[:aWS_secret_key] = '[secret]'
    end

    res = Amazon::Ecs.item_search(params[:search], {:response_group => 'Medium', :search_index => 'All'})
  end
end

我在第 8 行得到:未初始化的常量 SearchController::Amazon,这是我第一次尝试使用 Amazon 的地方。

ecs.rb 有一个包含类 Ecs 的模块 Amazon。我不确定为什么这在 erb 中有效,而不是在 rails 中有效。

我对 Rails 还是有点陌生​​,所以请用简短的词来回答。 :-/

最佳答案

给出了答案。我将我的初始化代码移动到 config/initializers 文件中的初始化程序,完全删除了 require,一切正常。我不知道为什么,所以如果有人能回答这个问题,那就太好了。

关于ruby - 在 Rails 3 Controller 中需要 gem 失败,出现 "Constant Missing",我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3190499/

相关文章:

ruby-on-rails - Ruby 2.1.0/2.1.1/2.1.2 不支持调试器 gem

ruby - rvm 系统安装,bin 未正确符号链接(symbolic link)

ruby-on-rails-3 - 将分页冲突 Rails 3.1.0.rc4

ruby-on-rails - bundle install 未完成执行。它卡在中间

ruby - 通过 Ruby 拆分字符串以获取所有子字符串的最佳方法是什么?

ruby - Ruby 中的 $1 和\1

ruby-on-rails - Rails 3 真实性 token

Ruby on Rails - 截断为特定字符串

ruby-on-rails - 我应该如何在生产中管理我的 gem 的二进制依赖项?

ruby - "install from the lastest build"是什么意思?