我已经在其他帖子中看到过这个问题,但是没有一个答案似乎适用。
环境: Rails 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中运作。我可以跑: 捆绑控制台 要求'amazon / ecs'然后去城镇
当我尝试从控制器使用它时,如下所示: 要求'amazon / 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
我得到:未初始化的常量SearchController ::亚马逊第8行,我首先尝试使用亚马逊。
ecs.rb有一个包含Ecs类的亚马逊模块。我不确定为什么这个工作在erb中,而不是在rails中。
我仍然是Rails的新手,所以请用小词回答。 : - /
答案 0 :(得分:0)
得到了答案。我将初始化代码移动到config / initializers文件中的初始化程序,完全删除了需求,并且工作正常。我不知道为什么,所以如果有人能回答,那就太好了。
答案 1 :(得分:0)
默认情况下,所有宝石都需要他们的文件,因此通常您不需要明确要求任何文件。
说到你的问题,可能会在某种程度上,你的控制器在处理亚马逊模块之前运行。