未初始化的常量UploadsController ::尝试编写常规AWS :: S3上载控制器时的Bucket

时间:2012-06-05 04:35:05

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

我正在尝试为我的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'一行。

我的猜测是我没有在控制器中建立连接。

如何建立连接或修复此错误?

感谢您的光临。

2 个答案:

答案 0 :(得分:2)

在这种情况下,

Bucket不是顶级常量。您可能希望AWS::S3::Bucket常量为新值,我假设S3Object类似。

请注意,您可能还需要查看Fog library

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

答案 1 :(得分:0)

我遇到了类似的问题,只需检查提供的所有所需文件并重新启动服务器即可解决