2

CarrierWave 的新手,已经很喜欢它了,比 Paperclip 好多了。导轨 3.2.1

我成功地使用本地存储,但现在尝试移动到 S3 并在 _url 方法(或数据库列)上得到一个奇怪的错误

ArgumentError:参数数量错误(2 比 1)

这是我的上传者:

class PictureUploader < CarrierWave::Uploader::Base
  include CarrierWave::RMagick
  storage :fog
  def store_dir
    "uploads/#{model.class.to_s.underscore}/#{mounted_as}/#{model.id}"
  end
  process :resize_to_limit => [200, 200]
  def extension_white_list
    %w(jpg jpeg gif png)
  end
end

本地存储一切正常,使用 S3 / 雾文件被上传并调整为 S3,我可以在存储桶中看到它;field / field_url 方法似乎有问题,它给出了错误(2 for 1)

我设置了非公开 s3:

CarrierWave.configure do |config|
  config.fog_credentials = {
  :provider               => 'AWS',       # required
  :aws_access_key_id      => 'xxx',       # required
  :aws_secret_access_key  => 'yyy',       # required
  :region                 => 'eu-west-1'  # optional, defaults to 'us-east-1'
 }
 config.fog_directory  = 'attachprod'                     # required
 config.fog_public     = false                                   # optional, defaults to true
end

这在我看来:

 <%= image_tag current_user.profile.picture_url %>

完整跟踪:

ArgumentError: wrong number of arguments (2 for 1)  
from /Users/boudewijnvandongen/.rvm/gems/ruby-1.9.2-p290/gems/fog-0.9.0/lib/fog/storage/models/aws/file.rb:126:in `url'
from /Users/boudewijnvandongen/.rvm/gems/ruby-1.9.2-p290/gems/carrierwave-0.6.0/lib/carrierwave/storage/fog.rb:148:in `authenticated_url'
from /Users/boudewijnvandongen/.rvm/gems/ruby-1.9.2-p290/gems/carrierwave-0.6.0/lib/carrierwave/storage/fog.rb:307:in `url'
from /Users/boudewijnvandongen/.rvm/gems/ruby-1.9.2-p290/gems/carrierwave-0.6.0/lib/carrierwave/uploader/url.rb:19:in `url'
from /Users/boudewijnvandongen/.rvm/gems/ruby-1.9.2-p290/gems/carrierwave-0.6.0/lib/carrierwave/uploader/versions.rb:159:in `url'
from /Users/boudewijnvandongen/.rvm/gems/ruby-1.9.2-p290/gems/carrierwave-0.6.0/lib/carrierwave/uploader/default_url.rb:8:in `url'
from /Users/boudewijnvandongen/.rvm/gems/ruby-1.9.2-p290/gems/carrierwave-0.6.0/lib/carrierwave/uploader/url.rb:27:in `to_s'
from /Users/boudewijnvandongen/.rvm/gems/ruby-1.9.2-p290/gems/railties-3.2.1/lib/rails/commands/console.rb:47:in `start'
from /Users/boudewijnvandongen/.rvm/gems/ruby-1.9.2-p290/gems/railties-3.2.1/lib/rails/commands/console.rb:8:in `start'
from /Users/boudewijnvandongen/.rvm/gems/ruby-1.9.2-p290/gems/railties-3.2.1/lib/rails/commands.rb:41:in `<top (required)>'
from script/rails:6:in `require'
from script/rails:6:in `<main>'

任何想法,在任何地方都找不到太多关于这个的东西?

谢谢

4

1 回答 1

3

原来它需要将 Fog gem 更新到 1.3.1 现在一切正常

于 2012-04-02T13:45:24.497 回答