13
我正在學習Rails的過程,並試圖創建一個文件上傳頁面來處理CSV數據,而無需使用我的數據庫或模型。我也試圖避免使用任何寶石,如回形針或載波。在Rails中上傳CSV文件並在頁面上顯示進程記錄而不保存文件?
我已經取得了一些進展,但由於某種原因,我的代碼無法正常工作。我沒有看到在CSV文件中顯示的記錄顯示在import.html.erb page.
當我點擊我的頁面上的上傳按鈕:localhost:3000/upload時,它會在提交後正確重定向到預期頁面,但是不顯示文件中的行。
有沒有人有線索爲什麼頁面不顯示CSV文件中的記錄?
上傳文件視圖(index.html.erb):
<%= form_tag({:action => :import}, multipart: true) do %>
<%= file_field_tag :file %>
<%= submit_tag("Import") %>
<% end %>
控制器(upload_controller.rb):
class UploadController < ApplicationController
def index
end
def import
rowarray = Array.new
myfile = params[:file]
CSV.foreach(myfile.path) do |row|
rowarray << row
@rowarraydisp = rowarray
end
end
end
結果視圖(import.html.erb):
<% @rowarraydisp.each do |row| %>
<%= row %>
<% end %>
<h1>File has been uploaded. Check</h1>
謝謝。這就是打印到import.html頁面的內容! [「firstcol」,「secondcol」] [「1」,「2」] [「3」,「4」] [「5」,「6」] 文件已上傳。檢查 –