Ruby on rails 如何在rails3的公用文件夹中临时保存文件

Ruby on rails 如何在rails3的公用文件夹中临时保存文件,ruby-on-rails,ruby-on-rails-3,Ruby On Rails,Ruby On Rails 3,我想在浏览文件时将文件临时保存在公用文件夹中 也就是说,当浏览文件时,首先将其保存在公用文件夹中,然后我将使用roo gem读取此文件,因此请帮助我如何进行此操作。例如 要上载文件的表单: <%= form_tag some_path, :multipart => true do %> <%= file_field_tag :my_file %> <%= submit_tag 'Upload' %> <% end %> 然后在必要时

我想在浏览文件时将文件临时保存在公用文件夹中

也就是说,当浏览文件时,首先将其保存在公用文件夹中,然后我将使用
roo gem
读取此文件,因此请帮助我如何进行此操作。

例如

要上载文件的表单:

<%= form_tag some_path, :multipart => true do %>
  <%= file_field_tag :my_file %>
  <%= submit_tag 'Upload' %>
<% end %>
然后在必要时使用Roo处理文件,然后删除:

path = File.join Rails.root, 'path', 'to', 'dir', filename
rows = Roo::Spreadsheet.open path
for i in 0..rows.last_row do
   ...
end
File.delete path
您必须将文件名存储在某个位置。或处理此目录中的所有文件。例如,所有xlsx文件:

Dir.glob(File.join Rails.root, 'path', 'to', 'dir', '*.xlsx').each do |path|
  rows = Roo::Spreadsheet.open path
  ...
end
实际上,在尝试存储文件之前,您必须检查文件是否已上载,如果您像第一个示例中那样处理文件,则必须检查文件是否存在。但为了保持示例的简单性,我们跳过了它

Dir.glob(File.join Rails.root, 'path', 'to', 'dir', '*.xlsx').each do |path|
  rows = Roo::Spreadsheet.open path
  ...
end