Требование драгоценного камня в Сбой контроллера Rails 3 с "Постоянным Пропавшим" - PullRequest
2 голосов
/ 07 июля 2010

Я видел этот вопрос несколько раз в других темах, но, похоже, ни один из ответов не подходит.

Среда: Rails 3 amazon / ecs gem от jugend.Одинокий файл находится здесь: http://github.com/jugend/amazon-ecs/blob/master/lib/amazon/ecs.rb

мой гемфайл содержит: 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 :: Amazon в строке 8, где я сначала пытаюсь использовать Amazon.

В ecs.rb есть модуль Amazon, содержащий класс Ecs.Я не уверен, почему это работает в erb, а не в rails.

Я все еще новичок в Rails, поэтому, пожалуйста, ответьте, используя маленькие слова.: - /

Ответы [ 2 ]

0 голосов
/ 14 февраля 2014

Все гемы требуют своих файлов по умолчанию, поэтому обычно вам не нужно явно запрашивать какие-либо файлы.

Говоря о вашей проблеме, может быть так, что ваш контроллер запущен до модуля Amazonобрабатывается.

0 голосов
/ 07 июля 2010

Был дан ответ.Я переместил свой код инициализации в инициализатор в файле config / initializers, полностью удалил требование, и все заработало.Хотя я не знаю почему, так что если бы кто-то мог ответить на это, это было бы здорово.

...