2010-07-06 53 views
2

我已經看到這在其他線程中問了幾次,但沒有一個答案似乎適用。需要在Rails 3中的寶石控制器失敗,「恆定缺失」

環境: 導軌3 亞馬遜/ ECS從jugend寶石。孤獨的文件是在這裏: http://github.com/jugend/amazon-ecs/blob/master/lib/amazon/ecs.rb

我的Gemfile有: 寶石 '亞馬遜精英',:git的=> '混帳://github.com/jugend/amazon-ecs.git'

一切在irb中工作。我可以運行: 束控制檯 需要「亞馬遜/ ECS」,然後去鎮

當我嘗試雖然從控制器使用它,就像這樣: 需要「亞馬遜/ 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有一個模塊Amazon包含一個類Ecs。我不知道爲什麼這是在erb中工作,而不是在rails中。

我還是比較新的Rails,所以請用小字回答。 : -/

回答

0

給出了答案。我將初始化代碼移到了config/initializers文件中的初始化程序中,完全刪除了這些require,並且工作正常。我不知道爲什麼,所以如果有人能回答這個問題,那會很棒。

0

所有的寶石都默認需要他們的文件,所以通常你不需要明確地需要任何文件。

說到你的問題,它可能在某種程度上說,你的控制器在亞馬遜模塊被處理之前運行。