AWS的未定义方法`find':: S3 :: Bucket:Class

时间:2012-06-05 05:08:41

标签: ruby-on-rails ruby-on-rails-3 amazon-s3

我正在为我的rails项目实现一个Amazon 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

此处记录了查找方法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"

2 个答案:

答案 0 :(得分:3)

你不能一起使用aws-s3和aws-sdk,因为它们会相互冲突。

答案 1 :(得分:0)

在这里工作。如果你去控制台做什么会发生:

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

?我正在使用aws-s3 0.6.3。如果还没有这样的方法,那么也许aws-sdk是罪魁祸首?我以前从没用过它。