質問: submit_tag "インポート", class: 'btn btn-info' **[app/controllers/itemmastertests.controller.rb]** def import Itemmastertest.import(params[:file]) redirect_to itemmastertests_url, notice: "インポート完了!" end ``` ### 試したこと csvファイルを読み込むmodelで値が設定されているか検証しました。 foreachの繰り返しの部分で値が設定されているのかを確認しました。 puts row[0] → E100 rowの添え字0には値が設定されていました。 puts Itemmastertest.attributes → {"id"=>nil, **"itemid"=>nil**, "item_name"=>"商品1", "item_color"=>"90", "abo_flag"=>true, "remarks"=>nil, "created_at"=>Tue, 08 Jan 2019 00:00:00 UTC +00:00, "updated_at"=>Tue, 08 Jan 2019 00:00:00 UTC +00:00} 上記"id"=>nil はrailsで自動設定される認識ですので問題ないと思っています。 csvファイルの先頭列のitemidには値が設定されていませんでした。 DBのテーブル(model)を再作成し、別のカラムを先頭列にしてみた。 →同じ現象になり、先頭列の値が設定されませんでした。 ### 補足情報(FW/ツールのバージョンなど) 以下、実行環境です。 OS Windows10 64bit ruby -v ruby 2.5.3p105 (2018-10-18 revision 65156) [x64-mingw32] rails version Rails 5.2.2 DB psql (PostgreSQL) 11.1
回答: ご質問の意味を正しく理解できていないかもしれませんが、headersオプションを使うと、CSVの初めの1行はheaderとして無視されます。今回はこのオプションを使っていますが、headerがないときはこのオプションはいりません。 先頭列と言っているのは、先頭行のことでしょうか?