Rails Carrierwave & s3: неверное количество аргументов (2 вместо 1)

новичок в 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 для 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>'

Любые идеи, нигде не могу найти много об этом ??

спасибо


person bobomoreno    schedule 01.04.2012    source источник
comment
NB, только что протестировано с 'config.fog_public = true', и это работает нормально, поэтому должно быть что-то с безопасностью; не уверен, что понимаю необязательный параметр config.fog_host, но, похоже, он не нужен.   -  person bobomoreno    schedule 01.04.2012


Ответы (1)


Оказывается, необходимо обновить гем Fog до версии 1.3.1. Теперь все в порядке.

person bobomoreno    schedule 02.04.2012
comment
как ты это понял? Кроме того, он дал вам конкретную строку в коде, которая вызывала ошибку? У меня возникла та же проблема для ` ‹%=image_tag(prod.prod_images.first.image_url(:thumb_pic))%›`. Спасибо - person noob; 10.05.2013
comment
привет, кажется, я зарегистрировал проблему на сайте github CarrierWave: github.com/jnicklas /carrierwave/issues/679?source=cc - person bobomoreno; 11.05.2013
comment
Спасибо! Исправил и мою проблему. Целый день пытался понять в чем дело. - person noob; 12.05.2013