2

CarrierWaveは初めてで、すでに気に入っています。Paperclipよりもはるかに優れています。Rails 3.2.1

ローカルストレージで正常に動作しましたが、S3に移動しようとすると、_urlメソッド(またはデータベース列)で奇妙なエラーが発生します

ArgumentError:引数の数が間違っています(1の場合は2)

これが私のアップローダーです:

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対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

4

1 に答える 1

3

Foggemを1.3.1にアップデートする必要があることが判明しました。

于 2012-04-02T13:45:24.497 に答える