我有这个,它还会附加3或4个变量:
name, theme = row[0], row[1]
右边的代码有快捷方式吗?我试过了:
name, theme = row
但是,然后名称返回整行,在这种情况下似乎没有用。
我正在使用CSV.foreach,当我添加{headers:true}时,上面的内容无效:
CSV.foreach('file.csv', {headers: true}) do |row|
name, theme = row
name # returns entire row in string
end
答案 0 :(得分:3)
name, theme = row
没问题。
irb(main):001:0> row = [1,2,3]
=> [1, 2, 3]
irb(main):002:0> first,second = row
=> [1, 2, 3]
irb(main):003:0> first
=> 1
irb(main):004:0> second
=> 2
答案 1 :(得分:3)
万一你的行不是数组,请尝试调用
name, theme = Array row
或
name, theme = row.to_a
如果它没有to_s方法,你就要定义它。