queremos asegurarnos de que SOLAMENTE los usuarios que han iniciado sesión puedan ver/descargar los archivos cargados desde carrierwave.Asegurando los archivos cargados de Carrierwave
¿Cómo se hace esto?
Se movió el directorio de la tienda del público a RAILS_ROOT, se creó la ruta para mostrar y descargar.
El problema es si es una imagen, <%= image_tag(photo.image_url) %>
obtengo la ruta completa /Usuarios/nombre/proyectos/appname/files/image/id/image.png, por lo que no se representa.
Además, sería bueno si la vista no representara mi ruta absoluta, solo la ruta relativa del sitio.
He visto este artículo y necesito mover el store_dir del público, pero creo que estoy haciendo algo mal. store_dir es "/#{Rails.root.to_s}/files/#{model.class.to_s.underscore}/#{mounted_as}/#{model.customer_id}/#{model.id}". Sigue obteniendo ActionController :: RoutingError (Ninguna ruta coincide con "/Users/.../42/142/thumb_9-cars.jpg") – pcasa
Sí, no tendrás una ruta al archivo usando esa ruta en la aplicación web, eso es por qué está utilizando send_file ... para que pueda apuntarlo a una ruta de sistema de archivos normal. Si carrierwave está almacenando el archivo en su sistema de archivos, y la image_url es la ruta correcta. Todo debería funcionar. Recuerde que va a señalar su etiqueta de imagen en la ruta al controlador que está emitiendo la imagen, no la ruta de la imagen real. – quest