2012-01-04 59 views
10

試圖上傳使用回形針和S3存儲的圖像時,我收到以下錯誤。該應用程序工作正常上傳本地,但是當我做了必要的修改,以使用S3我得到如下結果:在ImagesController#的Rails 3.1,回形針,S3 - 未初始化的常量AWS :: S3 :: Base的

NameError創建

未初始化的常量AWS :: S3 :: Base的

的Gemfile

source 'http://rubygems.org' 

gem 'rails', '3.1.3' 

gem 'sqlite3' 

group :assets do 
    gem 'sass-rails', '~> 3.1.5' 
    gem 'coffee-rails', '~> 3.1.1' 
    gem 'uglifier', '>= 1.0.3' 
    gem 'dynamic_form' 
end 

gem 'aws-sdk' 
gem 'paperclip' 

型號/ Image.rb

class Image < ActiveRecord::Base 
    has_attached_file :file, 
         :styles => { 
          :featured => "970x560>", 
          :thumb => "192x112>" 
         }, 
         :storage => :s3, 
         :s3_credentials => "#{Rails.root}/config/amazon_s3.yml" 
end 

配置/ amazon_s3.yml

bucket: myapp-dev 
access_key_id: #################### 
secret_access_key: ################################ 

捆綁寶石: AWS-SDK(1.2.5) 紙夾(2.4.5) 導軌(3.1.3)

+0

您可能需要'在某處包含AWS :: S3' 。 – Robin 2012-01-04 21:19:58

回答

25

回形針2.4.5仍然使用aws-s3寶石。 (Github上的README指aws-sdk,但這隻適用於未發佈的主分支)。

您的Gemfile行更改爲:

gem "aws-s3", :require => "aws/s3" 

或使用主分支,而不是穩定的版本(這當然有一些涉及的風險):

gem 'paperclip', :git => "git://github.com/thoughtbot/paperclip.git" 
gem "aws-sdk" 

UPDATE:回形針2.5 .0於2012年1月13日發佈,現在使用aws-sdk

+1

將回形針升級到2.5.0對我來說訣竅 – 2012-02-12 15:26:15

+0

這是否意味着我們需要從gem文件中刪除「gem」aws-s3「::require =>」aws/s3「'這一行? – Parth 2012-04-13 19:25:14

+0

@Paarth With Paperclip> = 2.5.0,你不再需要aws-s3寶石(它現在使用aws-sdk)。但是,我不知道如果將Gemfile中的aws-s3 gem留在什麼地方會導致任何衝突。 – 2012-04-13 20:21:48

-2

誰決定殺死回形針給windows用戶做得很好。

捆綁安裝

Fetching git://github.com/thoughtbot/paperclip.git 
remote: Counting objects: 5602, done. 
remote: Compressing objects: 100% (2419/2419), done. 
remote: Total 5602 (delta 3868), reused 4704 (delta 3065) 
Receiving objects: 100% (5602/5602), 855.88 KiB | 314 KiB/s, done. 
Resolving deltas: 100% (3868/3868), done. 
error: unable to create file test/fixtures/question?mark.png (Invalid argument) 

所以檢查出的寶石 '回形針',:混帳=> 「混帳://github.com/thoughtbot/paperclip.git」 直接並不能解決問題。 gem「aws-s3」,:require =>「aws/s3」現在解決了這個問題,但它可能意味着現在沒有對2.5.0進行更新

相關問題