2016-07-20 7 views
0

Ich habe ein Datei-Upload-Formular, das ich möchte, dass eine Standarddatei bereits beim Laden der Seite geladen wird. Mit anderen Worten, einer der Parameter ist der Pfad der temporären Datei, und ich möchte, dass diese Datei die Standarddatei im Formular ist.Rails 4: Formular laden mit Datei bereits vorhanden

<!-- params[:checked_file] is a path to the desired file --> 
<div class="content"> 
    <%= form_tag import_timecard_path, multipart: true do %> 
     <!-- this doesn't load the file --> 
     <%= file_field :file, params[:checked_file], class: "btn" %> 
     <%= collection_select :timecard, :payroll_id, Payroll.all, :id, :dates %> 
     <%= submit_tag "Import", class: "btn btn-primary btn-raised" %> 
    <% end %> 
</div> 

Antwort

0

Sie können aus Sicherheitsgründen keinen Standardwert für das Dateifeld festlegen. Nur Benutzer können dieses Feld füllen.

Sie können jedoch die Vorschau der 'Standard' Datei anzeigen. Beachten Sie Folgendes: (Unter der Annahme, @file Ihre vorinstallierte Datei)

<% if @file.exists? %> 
    <p class="small"> 
    Default: 
    </p> 
    <%= @file.name => 
    <%= hidden_field_tag :file, @file %> 
<% end %> 

<%= file_field_tag :file %> 

Sie das versteckte Feld zum Speichern von vorinstallierten Datei verwenden kann. Wenn der Benutzer seine eigene Datei hochlädt, wird der Wert des versteckten Feldes überschrieben.

Wenn Sie den Dateipfad zu DB speichern, können Sie den Standard-Dateipfad mit Migration gesetzt und das versteckte Feld auslassen:

t.string :filepath, default: <path_to_temp_file> 
Verwandte Themen