Devo essere in grado di allegare un file a una posta (utilizzando Mailer) per un file caricato di recente che non è collegato a nessun modello.File temporaneo Carrierwave senza modello
Nel codice che va per il modulo di upload:
<%= 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!" %>
Ora, quello che sto cercando a fare nell'azione send_mail è qualcosa di simile:
MyMailer.send_mail(params[:mail][:attachment]).deliver
con params [: mail] [: allegato] è il percorso del file temporaneo caricato con il modulo. Come si può farlo?
Ciò implica anche un'altra domanda: dovrei cancellare manualmente il file dalla temp una volta inviata la posta? Se sì, come?
Infine inchiodato: 'meno che (params [: mail] [: allegato]). Nil? uploader = AttachmentUploader.new uploader.cache (params [: mail] [: allegato])! @file_name = uploader.filename @file_data = uploader.file.read() FINE' e poi 'MyMailer.send_mail (@ nome_file, @ file_data) ' – muichkine
Se sei un gioco per ricapitolare la soluzione come la tua risposta, cancellerò la mia risposta. (Vedi http://meta.stackexchange.com/questions/90263/unanswered-question-answered-in-comments per l'elaborazione del motivo per cui questo è utile.) Grazie! – DreadPirateShawn