在Rails 3控制器中需要gem失败并且“常量缺失”

我已经在其他post中看到过这个问题,但是没有一个答案似乎适用。

环境:来自jugend的Rails 3 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  'Medium', :search_index => 'All'}) end end 

我得到:未初始化的常量SearchController ::亚马逊在第8行,我首先尝试使用亚马逊。

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

我仍然是Rails的新手,所以请用小词回答。 : – /

得到了答案。 我将初始化代码移动到config / initializers文件中的初始化程序,完全删除了需求,并且工作正常。 我不知道为什么,所以如果有人能回答,那就太好了。

默认情况下,所有gem都需要它们的文件,因此通常您不需要明确要求任何文件。

说到你的问题,可能是某种程度上,你的控制器是在处理亚马逊模块之前运行的。