Rails4:用已经存在的文件加载表单



我有一个文件上传表单,我希望在页面加载时已经加载一个默认文件。换句话说,其中一个params是临时文件的路径,我希望该文件是.格式的默认文件

<!-- 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>

由于安全原因,不能为文件字段设置默认值。只有用户可以填写该字段。

但是,您可以显示"默认"文件的预览。考虑以下内容:(假设@file是您预加载的文件)

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

您可以使用隐藏字段来存储预加载的文件。若用户上传自己的文件,隐藏字段值将被覆盖。

如果将文件路径保存到DB,则可以通过迁移设置默认文件路径,并省略隐藏字段:

t.string :filepath, default: <path_to_temp_file>

相关内容

  • 没有找到相关文章

最新更新