Necesito poder adjuntar un archivo a un correo (usando Mailer) para un archivo recientemente cargado que no está vinculado a ningún Modelo.Carrierwave Archivo temporal sin modelo
En el código que va para el formulario de carga:
<%= form_for(:mail, :url => {:action => 'send_mail'}, :html => {:multipart => true}) do |f| %>
<table summary="send_table">
<tr>
<th>Attachment</th>
<td><%= f.file_field(:attachment) %><a id="attachment"></a></td>
</tr>
</table>
<%= submit_tag "Send!" %>
Ahora, lo que estoy buscando para que haga en la acción send_mail es algo así como:
MyMailer.send_mail(params[:mail][:attachment]).deliver
con params [: mail] [: archivo adjunto] es la ruta al archivo temporal cargado con el formulario. ¿Cómo puede uno hacer eso?
Esto también implica otra pregunta: ¿Debo eliminar manualmente el archivo de la temperatura una vez que se envía el correo? Si es así, ¿cómo?
Finalmente lo clavé: 'unless (params [: mail] [: attachment]) nil? cargador = AttachmentUploader.new uploader.cache (params [: mail] [: adjunto])! @file_name = uploader.filename @file_data = uploader.file.read() end' y luego 'MyMailer.send_mail (@ file_name, @ file_data) ' – muichkine
Si está listo para recapitular la solución como su propia respuesta, borraré mi respuesta. (Ver http://meta.stackexchange.com/questions/90263/unanswered-question-answered-in-comments para la explicación de por qué esto es útil.) ¡Gracias! – DreadPirateShawn