2011-03-20 19 views

Respuesta

23

Cualquier modelo, o puede configurarlo de forma global. Eche un vistazo al archivo léame para v0.5.2 (joya actual) en https://github.com/jnicklas/carrierwave/tree/v0.5.2

En la parte inferior, hay algunas instrucciones para configurar el entorno de prueba. Utilice el mismo enfoque para usar diferentes configuraciones para "desarrollo" y "producción", p. añadir un archivo "carrierwave.rb" a "config/inicializadores" y añadir el código de configuración

if Rails.env.test? or Rails.env.cucumber? 
    CarrierWave.configure do |config| 
    config.storage = :file 
    config.enable_processing = false 
    end 
end 

y para el desarrollo

if Rails.env.development? 
    CarrierWave.configure do |config| 
    config.storage = :file 
    end 
end 

y producción

if Rails.env.production? 
    CarrierWave.configure do |config| 
    config.storage = :s3 
    end 
end 
+1

en qué archivo coloco este código? Development.rb? Lo puse en development.rb y me aparece un mensaje de error que no puede convertir Symbol en Integer cuando intento acceder a avatar.url? – user663778

+2

Lo pondría en "config/initializers/carrierwave.rb" (crea un nuevo archivo). – juwalter

1

supongo esto se establece en un modelo en alguna parte. Puede hacer algo como

if Rails.env.production? 
    // set production 
else 
    // set dev/test 
end 
+0

Gracias. ¿Debo agregar este código en el método de inicialización? – user663778

7

La forma más sencilla que por lo general hacer es a través de Uploader.

class CoverUploader < CarrierWave::Uploader::Base 
    # Choose what kind of storage to use for this uploader: 
    storage (Rails.env.production? ? :fog : :file) 
end 
+0

Gracias por el trazador de líneas uno sucinto. Este parece ser un lugar mejor (en el cargador) para tomar esta decisión de almacenamiento basada en el entorno. En mi caso, solo necesitaba hacer una distinción en uno de mis cargadores. –

Cuestiones relacionadas