0

我正在尝试为我的 rails 项目编写一个通用的 Amazon S3 上传器(主要用于图像)。我能够按照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 库

您还没有弄清楚 params 将如何传递的事实意味着您可能还想先在没有 S3 的情况下完成 Rails 教程。

于 2012-06-05T04:43:34.477 回答
0

我有一个类似的问题,只需检查所有需要的文件并重新启动服务器即可解决

于 2021-01-27T01:03:15.217 回答