2013-01-06 40 views
14

我正在使用Heroku和S3以及我的Rails應用程序。我只在生產模式下安裝了霧寶石,因爲我的本地計算機是一件垃圾。無論如何,它可以很好地工作,並且已經證明是比我的頭髮在本地安裝霧更好的解決方案,但現在我必須將上傳器文件切換到使用本地主機,然後切換回來作出承諾。如何僅在生產環境中使用載波上的霧

如果能夠在本地使用文件,然後在生產模式下霧化而不需要手動來回切換,那將是很好的選擇。有沒有人有關於如何做到這一點的建議?

非常感謝。

回答

47

這很簡單。你必須在配置文件中定義它。但是不要在模型中定義存儲,因爲這會覆蓋配置文件中的設置。

# 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 
+2

我昨天忘了謝謝你。像魅力一樣工作。 – spitfire109

+0

請將問題標記爲已解決。 – Fa11enAngel

+0

在carrierwave的當前版本中,您必須將'config.storage'放在'AFTER'config.fog_credentials'後面 – joseramonc