我是RoR的新手。 我要动态地从一个CSV文件添加属性,使我的代码将能够动态地读取任何csv文件,并建立了数据库(即转换任何CSV文件导入到Ruby对象)如何从csv文件动态添加属性
我用下面的代码
csv_data = File.read('myData.csv')
csv = CSV.parse(csv_data, :headers => true, :header_converters => :symbol)
csv.each do |row|
MyModel.create!(row.to_hash)
end
但是它会失败下面的例子
myData.csv
Name,id
foo,1
bar,10
myData2.csv
Name,value
foo,1
bar,10
这将导致对其myData2错误,因为该值不是在为MyModel
未知属性 '值' 为为MyModel的参数。
我曾经想过用发送(:attrAccessor,名字),但我不知道我怎样才能从CSV读取时,任何想法整合呢?
什么属性确实你的模型有数据库? –
那么这里有什么_exactly_是问题?如果你说'MyModel.create({value:10})'并且模型没有'value'字段,你期望什么? –