Ich verwende Schienen 4.x mit Büroklammer. Ich möchte sicherstellen, dass, wenn der Benutzer auf einen Link klickt, um einen Büroklammer-Anhang herunterzuladen, die Datei heruntergeladen wird, anstatt sich zu öffnen.Abrufen von ActionController :: MissingFile beim Versuch, einen Download zu erzwingen (vice open) mit send_file
Der Link war ich mit, dass würde öffnen oder speichern im Browser-Konfiguration abhängig war
<%= link_to image_tag("save.gif", document.doc_file.url, :target => "_blank" %>
Diese Verbindung manchmal die Datei anstelle des Herunterladens geöffnet.
I gesetzt, ein Verfahren zum
helper_method :download
def download
@document= Document.find(39)
send_file ("http://localhost:3000/images/39/Medical_Opportunity_EvaluationForm.pdf?1458068410"),
:filename => @document.doc_file_file_name,
:type => @document.doc_file_content_type,
:disposition => 'attachment'
end
I fest verdrahtet, die URL für das Testen auf. Ich hatte es auch mit send_file ("http://localhost:3000#{@document.doc_file.url}")
und send_file (@document.doc_file.url)
versucht. Seither hat gearbeitet.
Mein Link zu dem ist
<%= link_to image_tag("save.gif"), download_path(document.id) %>
routes.rb hat
match 'documents/download/:id' => 'documents#download',via: [:get, :post], :as => 'download'
Wenn ich auf dem Download-Link klicken, erhalte ich einen Fehler von
ActionController::MissingFile in DocumentsController#download
Cannot read file http://localhost:3000/images/39/Medical_Opportunity_EvaluationForm.pdf
Rails.root: C:/Users/cmendla/RubymineProjects/technical_library
Application Trace | Framework Trace | Full Trace
app/controllers/documents_controller.rb:17:in `download'
Wenn ich setze die URL in eine Adressleiste in einem Browser funktioniert. das heißt `http://localhost:3000/images/39/Medical_Opportunity_EvaluationForm.pdf '
Das hat es getan. Jetzt verstehe ich, warum ich den Fehler bekommen habe. Danke. –