2013-01-06 21 views
14

Tôi đang sử dụng Heroku và S3 với ứng dụng Rails của tôi. Tôi chỉ có đá quý sương mù được cài đặt trong chế độ sản xuất bởi vì máy tính địa phương của tôi là một mảnh rác. Dù sao, nó hoạt động tốt theo cách này và đã được chứng minh là giải pháp tốt hơn kéo tóc của tôi ra để cài đặt sương mù cục bộ, nhưng bây giờ tôi phải chuyển tệp Uploader để sử dụng localhost và sau đó chuyển nó trở lại để thực hiện một cam kết.Làm thế nào để sử dụng Fog với CarrierWave chỉ trong sản xuất

Sẽ thật tuyệt nếu có thể sử dụng tệp cục bộ và sau đó là sương mù ở chế độ sản xuất mà không cần chuyển đổi qua lại theo cách thủ công. Có ai có bất cứ đề nghị về làm thế nào để làm điều này?

Cảm ơn rất nhiều trước.

Trả lời

47

Điều này khá dễ dàng. Bạn phải xác định nó trong tập tin cấu hình. Nhưng không xác định lưu trữ trong các mô hình của bạn vì điều này sẽ ghi đè lên các thiết lập từ tập tin cấu hình.

# 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

Tôi quên cảm ơn bạn hôm qua. Làm việc như người ở. – spitfire109

+0

Vui lòng đánh dấu câu hỏi là đã giải quyết. – Fa11enAngel

+0

Trong phiên bản hiện tại của carrierwave bạn phải đặt 'config.storage' SAU' config.fog_credentials' – joseramonc

Các vấn đề liên quan