2011-06-06 66 views
0

我正在使用csv导出数据。我动态填充字段并为了做到这一点我已经添加循环中CSV:rails csv,数组显示无数据

csv_data = CSV.generate do |csv| 
    csv << [ 
    @userHeaders.each do |user| 
    "#{user.name}" 
    end 
    ] 
end 

但这返回一些事情是这样的:[#<User >, #<User >, #<User >, #<User >]

但是当我试图检查分配后的价值它到一个变量,它显示所有已通过的名称。

name = "#{user.name}" 
puts name.inspect # (this diaplays all the names) 

是否有任何格式来显示循环在csv内的数据?

请回答 感谢

回答

1

引导尽量只使用阵列的map(又名collect)方法:

csv_data = CSV.generate do |csv| 
    csv << @userHeaders.map { |user| user.name } 
end 
+0

由于它的伟大工程。我还有一个例子,数据不能正常显示,而在EXcel中显示数据时,它会显示像这样[“jack”,“Tom”,“Kevin”]在一个柱状图中。这不会作为单独的列返回。这是我使用的代码只是在循环csv << [ “Country”,“State”, @ userHeaders.map {| user | user.name}, ] – lamrin 2011-06-06 06:05:08

+0

您可能想要使用'csv << [“Country”,“State”] + @ userHeaders.map {| user | user.name}'代替。 – 2011-06-06 06:08:27

+0

非常感谢,效果很好...... – lamrin 2011-06-06 06:11:39