0

Railsプロジェクト用の一般的なAmazonS3アップローダー(主に画像に使用されます)を作成しようとしています。http://amazon.rubyforge.org/に従って、コンソールで環境をセットアップすることができました。

コンソールのガイドに従うことができました。しかし、それをRailsプロジェクトに適用すると問題が発生しました。新しいビューにアクセスしようとすると、次のエラーが発生します。

NameError in UploadsController#new 
uninitialized constant UploadsController::Bucket

これが私のコントローラーです:

class UploadsController < ApplicationController
require 'aws/s3'

  def new
    photo_bucket = Bucket.find('photos')
    @photos = photo_bucket.objects
  end

  def create
    file = 'black-flowers.jpg'
    S3Object.store(file, open(file), 'photos')
  end
end

私のコントローラーでは、新しいアクションにアップロード用のフォームとすべての写真のリストが含まれます。

私の作成アクションはファイルを保存するだけです。フォームのパラメータがどのようにコントローラに渡されるかはまだわかりません。そのため、「black-flowers.jpg」行は無視してください。

私の推測では、コントローラーで接続を確立していません。

接続を確立する、またはこのエラーを修正するにはどうすればよいですか?

見てくれてありがとう。

4

2 に答える 2

2

Bucketこの場合、トップレベルの定数ではありません。あなたはおそらくAWS::S3::Bucketnew の定数が必要ですS3Object.

これについては、 Fog ライブラリも調べる必要があることに注意してください。

パラメータがどのように渡されるかを理解していないという事実は、最初に S3 を使用せずに Rails チュートリアルを実行することも必要になる可能性があることを意味します。

于 2012-06-05T04:43:34.477 に答える