Ruby on rails 使用rails从CSV导入特定行和列
首先,是否有一种方法可以在Ruby on rails 使用rails从CSV导入特定行和列,ruby-on-rails,csv,import,Ruby On Rails,Csv,Import,首先,是否有一种方法可以在行中只抓取某些列 其次,我使用if语句是否是获取特定行的最佳方法? 我是否可以将整个CSV加载到某种排序的暂存表中,然后获取我需要的内容?行。to_hash将根据标题生成属性哈希。要选择一组特定的属性,应该使用slice require 'csv' CSV.foreach(filename, :headers => true) do |row| if column3 = true || column 4 = true Model.create
行中只抓取某些列
其次,我使用if
语句是否是获取特定行的最佳方法?
我是否可以将整个CSV加载到某种排序的暂存表中,然后获取我需要的内容?行。to_hash
将根据标题生成属性哈希。要选择一组特定的属性,应该使用slice
require 'csv'
CSV.foreach(filename, :headers => true) do |row|
if column3 = true || column 4 = true
Model.create!(row.to_hash)
else
skip
end
end
关于您的第二个问题:是的,您仍然需要加载整个csv,只需检查每一行
>> row.to_hash # { :attr1 => 'val1', :attr2 => 'val2', :attr3 => 'val3' }
>> row.to_hash.slice(:attr1, :attr2) # { :attr1 => 'val1', :attr2 => 'val2' }