Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/ruby/21.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ruby on rails CarrierWave Uploader URL在使用云时指向本地文件系统_Ruby On Rails_Ruby_Ruby On Rails 3_Carrierwave - Fatal编程技术网

Ruby on rails CarrierWave Uploader URL在使用云时指向本地文件系统

Ruby on rails CarrierWave Uploader URL在使用云时指向本地文件系统,ruby-on-rails,ruby,ruby-on-rails-3,carrierwave,Ruby On Rails,Ruby,Ruby On Rails 3,Carrierwave,我在Rails应用程序中使用Carrierwave来处理图像上传。当我将上传程序配置为本地存储文件时,一切都很好。当我要求上传到Rackspace的云文件服务时,问题就出现了。上传效果很好,我可以在我的控制面板中看到文件。问题是Carrierwave在上传程序上返回一个URL,就好像文件存储在本地一样。ie:@foo.uploader.url看起来像/User/bar/code/app/public/uploads/yeah.jpeg而不是http://cloudcloud.com/yeah.j

我在Rails应用程序中使用Carrierwave来处理图像上传。当我将上传程序配置为本地存储文件时,一切都很好。当我要求上传到Rackspace的云文件服务时,问题就出现了。上传效果很好,我可以在我的控制面板中看到文件。问题是Carrierwave在上传程序上返回一个URL,就好像文件存储在本地一样。ie:
@foo.uploader.url
看起来像
/User/bar/code/app/public/uploads/yeah.jpeg
而不是
http://cloudcloud.com/yeah.jpg

我哪里做错了

# config/initializers/carrier_wave.rb

CarrierWave.configure do |config|
  config.storage = :fog

  config.fog_credentials = {
    :provider           => 'Rackspace',
    :rackspace_username => 'foo',
    :rackspace_api_key  => '0f0f0f0f0f0f0f'
  }

  config.fog_directory = 'development-images'
end

# app/uploaders/foo_uploader.rb

class FooUploader < CarrierWave::Uploader::Base
  def store_dir
    "uploads/#{model.class.to_s.underscore}/#{mounted_as}/#{model.id}"
  end
end
#config/initializers/carrier_wave.rb
CarrierWave.configure do | config|
config.storage=:雾
config.fog\u凭据={
:provider=>“机架空间”,
:rackspace_username=>“foo”,
:机架空间\u api\u键=>'0F0F'
}
config.fog_目录='development images'
结束
#app/uploaders/foo_uploader.rb
类fooouploader
我查看了我自己的Rackspace uploader代码,唯一的区别是我将fog_主机设置为CDN url,如下所示:

config.fog_host = "http:/something.rackcdn.com"

完美的谢谢我不知道你必须打开Rackspace的CDN才能公开访问你的文件。CarrierWave的文件称,该选项不是必需的,但强烈建议使用。