Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/ruby-on-rails-3/4.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

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/heroku/2.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 3 如何仅在生产中使用带托架的雾_Ruby On Rails 3_Heroku_Amazon S3_Carrierwave_Fog - Fatal编程技术网

Ruby on rails 3 如何仅在生产中使用带托架的雾

Ruby on rails 3 如何仅在生产中使用带托架的雾,ruby-on-rails-3,heroku,amazon-s3,carrierwave,fog,Ruby On Rails 3,Heroku,Amazon S3,Carrierwave,Fog,我在Rails应用程序中使用Heroku和S3。我只在生产模式下安装了fog gem,因为我的本地计算机是一堆垃圾。不管怎么说,它以这种方式工作很好,并且已经被证明是比在本地安装fog更好的解决方案,但是现在我必须将上传文件切换到使用localhost,然后再切换回来以做出承诺 如果能够在本地使用文件,然后在生产模式下使用fog,而无需手动来回切换,那就太好了。有人对如何做到这一点有什么建议吗 事先非常感谢。这很容易。您必须在配置文件中定义它。但不要在模型中定义存储,因为这会覆盖配置文件中的设置

我在Rails应用程序中使用Heroku和S3。我只在生产模式下安装了fog gem,因为我的本地计算机是一堆垃圾。不管怎么说,它以这种方式工作很好,并且已经被证明是比在本地安装fog更好的解决方案,但是现在我必须将上传文件切换到使用localhost,然后再切换回来以做出承诺

如果能够在本地使用文件,然后在生产模式下使用fog,而无需手动来回切换,那就太好了。有人对如何做到这一点有什么建议吗


事先非常感谢。

这很容易。您必须在配置文件中定义它。但不要在模型中定义存储,因为这会覆盖配置文件中的设置

# sample config/initializers/carrierwave.rb
CarrierWave.configure do |config|

  if Rails.env.development? || Rails.env.test?
    config.storage = :file
  else
    config.fog_credentials = {
      :provider               => 'AWS',
      :aws_access_key_id      =>  'some_access_key_id',
      :aws_secret_access_key  => 'some_secret_key',
      :region                 => 'eu-west-1'
    }
    config.storage = :fog
    config.fog_directory = 'bucket_name'
  end
end

在当前版本的carrierwave中,您必须将
config.storage
放在
config.fog\u凭据之后