我在其他线程中看到过几次这个问题,但似乎没有一个答案适用。
环境: 轨道 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/