【问题标题】:Rails Carrierwave & s3: wrong number of arguments (2 for 1)Rails Carrierwave & s3:参数数量错误(2 比 1)
【发布时间】:2012-04-15 12:24:36
【问题描述】:

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/fog 文件被上传并调整为 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>'

任何想法,在任何地方都找不到更多关于此的信息??

thnx

【问题讨论】:

  • 注意,刚刚用 'config.fog_public = true' 进行了测试,效果很好,所以一定是安全的;不确定我是否理解可选的“config.fog_host”参数,但似乎不需要它。

标签: ruby-on-rails amazon-s3 carrierwave fog


【解决方案1】:

事实证明它需要将 Fog gem 更新到 1.3.1 现在一切正常

【讨论】:

  • 你是怎么想出来的?另外,它是否在导致错误的代码中为您提供了特定的行?我在 `` 遇到了同样的问题。谢谢
  • 嗨,我想我在carrierwave github 网站上记录了一个问题:github.com/jnicklas/carrierwave/issues/679?source=cc
  • 谢谢!也解决了我的问题。花了一天时间试图找出问题所在。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2015-04-26
  • 1970-01-01
相关资源
最近更新 更多