CSVMapperの自動ヘッダー読み込み機能について
CSVの1行目が列の説明になってるCSVあるじゃないすか。ああいうのは自動でフィールドに変換できるようになってます
たとえばこういうやつ。日本語も大丈夫
first name,last name,age,住所
takumi,kimoto,99,ウインドウズ
みたいな感じのを読み込むときに、has_headerと指定すると1行目がヘッダーだと認識して自動でフィールドに変換してくれるようになる
class MyCSV < CSVMapper has_header end csv = MyCSV.load_file("./test.csv") p csv # => #<MyCSV:0x00000002be3be0 @records=[#<Hashie::Mash age="99" first_name="takumi" last_name="kimoto" 住所="ウインドウズ">]> csv[0].first_name csv[0].last_name csv[0].age # csv[0].住所 # これはRubyの仕様で出来ないが # csvの行のオブジェクトはMashなので # (method/添字どちらもアクセスできるハッシュ) # 次のように添字アクセスすることでアクセスできる csv[0]["住所"]