2012-06-05 7 views
3

Я работаю над реализацией загрузчика Amazon S3 для моего проекта rails.undefined метод `find 'для AWS :: S3 :: Bucket: Class

Я пытаюсь получить доступ к ведру, чтобы я мог назначить все изображения переменной и перечислить их.

я получаю следующее сообщение об ошибке при попытке просмотреть мое новое действие в моем контроллере загрузки:

undefined method `find' for AWS::S3::Bucket:Class 

Вот мой uploads_controller.rb

class UploadsController < ApplicationController 
require 'aws/s3' 

    def new 

    photo_bucket = AWS::S3::Bucket.find('photos') 
    @photos = photo_bucket.objects 
    end 
end 

Метод находки документирован здесь http://amazon.rubyforge.org/ ,

Любые подсказки относительно того, что здесь происходит?

Спасибо.

Вот мой Gemfile:

gem 'paperclip' 
gem 'aws-s3' 
gem 'aws-sdk' 
gem 'rails', '3.2.0' 
gem 'bcrypt-ruby', '3.0.1' 
gem 'nokogiri' 
gem 'kaminari' 
gem 'acts-as-taggable-on', '~> 2.2.2' 
gem 'omniauth-twitter' 
gem 'omniauth-facebook' 
gem "friendly_id", "~> 4.0.1" 
+0

Вы уверены, что это драгоценный камень, который вы используете? Можете ли вы показать нам свой Gemfile? –

+0

@ RyanBigg Добавил Gemfile по вашему запросу. Похож на правильный камень. – Huy

+0

Привет @Huy, я получаю ту же ошибку, пытаясь получить доступ к Bucket. Я на Rails 5 и aws-sdk. undefined метод 'find 'для Aws :: S3 :: Bucket: Class // @songs = Aws :: S3 :: Bucket.find (Musicapp :: Application :: BUCKET) .objects. Вы использовали aws-sdk или aws-s3? – catch22

ответ

3

Вы не можете использовать aws-s3 и aws-sdk вместе, так как они будут конфликтовать друг с другом.

+0

Спасибо, Beerlington. – Huy

0

Работы здесь. Что произойдет, если вы пойдете на консоль и выполните:

require 'aws/s3' 
AWS::S3::Bucket.methods.find_all{|m| m=~/find/ } 

? Я использую aws-s3 0.6.3. Если такого метода еще нет, возможно, aws-sdk является виновником? Я никогда не использовал его раньше.

Смежные вопросы