ker*_*lin 1 ruby csv ruby-on-rails fastercsv
我有一个格式如下的CSV文件:
name,color,tasty,qty
apple,red,true,3
orange,orange,false,4
pear,greenish-yellowish,true,1
Run Code Online (Sandbox Code Playgroud)
如您所见,Ruby OO世界中的每一列都代表了各种类型 - 字符串,字符串,布尔值,整数.
现在,最终,我想解析文件中的每一行,确定适当的类型,并通过Rails迁移将该行插入数据库.例如:
Fruit.create(:name => 'apple', :color => 'red', :tasty => true, :qty => 3)
Run Code Online (Sandbox Code Playgroud)
救命!
对于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
Run Code Online (Sandbox Code Playgroud)
对于Ruby 1.9的,只是重新命名FasterCSV,以CSV和fastercsv到csv:
require 'csv'
CSV.parse(my_string, :headers => true) do |row|
# same as ruby-1.8
end
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
1671 次 |
| 最近记录: |