2012-06-05 71 views
3

我正在爲我的rails項目實現一個Amazon S3上傳器。未定義的方法`查找'的AWS :: S3 ::桶:類

我試圖訪問一個存儲桶,以便我可以將所有圖像分配給一個變量並列出它們。

我不斷收到以下錯誤,當我嘗試在我的上傳控制器我的新動作:

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 

find方法記錄在這裏​​。

有關這裏發生了什麼的任何線索?

謝謝。

這是我的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

嗨@惠,我得到同樣的錯誤試圖訪問一個桶。我在Rails 5和aws-sdk上。 Aws :: S3 :: Bucket:Class的未定義方法'find'// @songs = Aws :: S3 :: Bucket.find(Musicapp :: Application :: BUCKET).objects。你使用aws-sdk還是aws-s3? – catch22

回答

3

你不能一起使用aws-s3和aws-sdk,因爲它們會相互衝突。

+0

謝謝比林靈頓。 – Huy

0

作品。如果你去控制檯,會發生什麼:

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

?我正在使用aws-s3 0.6.3。如果還沒有這樣的方法,那麼aws-sdk可能是罪魁禍首?我以前從未使用過它。

相關問題