1

次のような形式の CSV ファイルがあります。

name,color,tasty,qty
apple,red,true,3
orange,orange,false,4
pear,greenish-yellowish,true,1

ご覧のとおり、Ruby OO の世界の各列は、string、string、boolean、int の組み合わせを表しています。

最終的には、ファイル内の各行を解析し、適切な型を判断して、Rails 移行を介してその行をデータベースに挿入したいと考えています。例:

Fruit.create(:name => 'apple', :color => 'red', :tasty => true, :qty => 3)

ヘルプ!

4

1 に答える 1

5

Ruby 1.8 の場合:

require 'fastercsv'

FasterCSV.parse(my_string, :headers => true) do |row|
  Fruit.create!(
    :name => row['name'],
    :color => row['color'],
    :tasty => row['tasty'] == 'true',
    :qty => row['qty].to_i
  )
end

Ruby 1.9 の場合、名前FasterCSVCSVおよびfastercsvに変更するだけcsvです。

require 'csv'

CSV.parse(my_string, :headers => true) do |row|
  # same as ruby-1.8
end
于 2010-04-09T18:34:09.790 に答える