Я хотел бы иметь возможность читать XML файл, загруженный пользователем (менее 100 кб), но не нужно сначала сохранять этот файл в базе данных. Мне не нужен этот файл за текущим действием (его содержимое анализируется и добавляется в базу данных, однако разбор файла не является проблемой). Поскольку локальные файлы можно читать с помощью:
File.read("export.opml")
Я подумал о создании файла_файла для: uploaded_file, а затем попытался прочитать его с помощью
File.read(params[:uploaded_file])
но все, что делает, это throw TypeError (не может преобразовать HashWithIndifferentAccess в String). Я действительно пробовал много разных вещей (включая чтение из каталога /tmp ), но не мог заставить их работать.
Я надеюсь, что краткость моего вопроса не замаскирует усилия, которые я дал, чтобы попытаться решить это самостоятельно, но я не хотел загрязнять этот вопрос сотнями способов, как НЕ сделать это, Большое спасибо любому, кто звонит.
Вот мой взгляд:
<% form_for(:uploaded_file, @feed, :url => {:action=>'parse'}, :html=> {:multipart=>true}) do |f| %> <p>
<%= f.label :uploaded_file, 'Upload your file.' %><br />
<%= f.file_field :uploaded_file %>
</p>
<p><%= f.submit 'upload' %></p>
<% end %>
Я настраиваю пользовательское действие (upload), которое обрабатывает загрузку file_field, которая после отправки передается другому пользовательскому действию (parse) для обработки. Может ли это быть частью моей проблемы?