我正在尝试为我的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'一行。
我的猜测是我没有在控制器中建立连接。
如何建立连接或修复此错误?
感谢您的光临。
答案 0 :(得分:2)
Bucket
不是顶级常量。您可能希望AWS::S3::Bucket
常量为新值,我假设S3Object
类似。
请注意,您可能还需要查看Fog library。
你还没有弄清楚如何传递params这一事实意味着你可能还想在没有S3的情况下完成Rails教程。
答案 1 :(得分:0)
我遇到了类似的问题,只需检查提供的所有所需文件并重新启动服务器即可解决