2012-01-04 9 views
10

paperclipとs3ストレージを使用して画像をアップロードしようとすると、次のエラーが発生します。アプリはローカル罰金アップロードを働いたが、私はS3を使用するために必要な変更を加えたとき、私は、次を得る:Rails 3.1、paperclip、s3 - 未初期化定数AWS :: S3 :: Base

NameError ImagesController#で:: S3 ::ベース

初期化されていない一定のAWSを作成します

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

答えて

25

ペーパークリップ2.4.5まだaws-s3の宝石を使用しています。 (GithubのREADMEはaws-sdkを参照していますが、これはリリースされていないマスターブランチの場合のみです)。

にごGemfileの行を変更します。

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

か(関連するいくつかのリスクがある当然のもの)の安定版の代わりにmasterブランチを使用します。

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

UPDATEを:ペーパークリップ2.5 2012年1月13日にリリースされた.0は、aws-sdkを使用します。

+1

paperclipを2.5.0にアップグレードすると、私にとって –

+0

のトリックがありました。これは、gemファイルから 'gem" aws-s3 "、require =>" aws/s3 "という行を削除する必要があることを意味しますか? – Parth

+0

@Paarth Paperclip> = 2.5.0では、aws-s3 gemは必要なくなりました(今はaws-sdkを使用しています)。あなたのGemfileにaws-s3の宝石を残しておけば、矛盾が生じるかどうか分かりません。 –

-2

誰かが窓にクリップを殺すことを決めたというユーザーは良い仕事をしました。

バンドルインストール

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) 

ので、宝石 'クリップ' をチェックアウトし、:gitの=> "gitの://github.com/thoughtbot/paperclip.git" 直接問題を解決していません。gem "aws-s3"、:require => "aws/s3"は現在問題を解決していますが、今のところ2.5.0へのアップデートを意味しません。

関連する問題