0

我正在使用回形针来处理我的 Rails 应用程序中的图像上传。使用文件存储在本地开发环境中运行正常。

现在我正在尝试使用 S3 使其工作(因为该应用程序要在 Heroku 上运行)。我已经按照此处的说明设置了一个存储桶并在 development.rb 和 production.rb 中设置了适当的参数:https ://devcenter.heroku.com/articles/paperclip-s3

当我启动服务器时,我收到以下错误:

/Users/ganzogo/.rvm/gems/ruby-1.9.3-p362/gems/railties-3.2.13/lib/rails/railtie/configuration.rb:85:in `method_missing': undefined method `paperclip' for #<Rails::Application::Configuration:0x007fcb8b952000> (NoMethodError)
  from /Users/ganzogo/Documents/acknowledgement/true-rails/config/environments/development.rb:41:in `block in <top (required)>'

然后它崩溃了。

错误中提到的行是:

config.paperclip.defaults = {
  :storage => :s3,
  :s3_credentials => {
    :bucket => ENV['S3_BUCKET_NAME'],
    :access_key_id => ENV['AWS_ACCESS_KEY_ID'],
    :secret_access_key => ENV['AWS_SECRET_ACCESS_KEY']
  }
}

如果我尝试在 Heroku 上运行,我会得到完全相同的错误。有没有人经历过这个并且知道我错过了什么?

4

2 回答 2

3

看起来您的配置块中可能有错字。尝试更改config.paperclip.defaults = {...}config.paperclip_defaults = {...},这应该可以解决您的问题。

于 2013-10-28T11:14:56.453 回答
0

我们在我们的一个实时应用程序上进行了这项工作

不同之处在于您需要将凭据放入模型本身。这是我们所拥有的:


#app/models/image.rb
#Image Upload 
        Paperclip.options[:command_path] = 'C:\RailsInstaller\ImageMagick'
        has_attached_file :image,
                :styles => { :medium => "x300", :thumb => "x100" },
                :default_url => "*******",
                :storage => :s3,
                :bucket => '******',
                :s3_credentials => S3_CREDENTIALS


#app/config/application.rb
config.paperclip_defaults = {
            :storage => :s3,
            :s3_host_name => 's3-eu-west-1.amazonaws.com'
    }

在 Heroku 中,您需要将各种环境变量添加到您的配置设置中

于 2013-10-28T10:12:28.850 回答