私は Rails を学習中で、データベースやモデルを使用せずに CSV データを処理するファイル アップロード ページを作成しようとしています。また、Paperclip や Carrier-wave などの宝石を使用しないようにしています。
ある程度の進歩はありましたが、何らかの理由でコードが機能しません。に表示される 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>