2016-07-29 19 views
0

Rails中2数据在一列中,而不是排明智的CSV写的Rails

开发应用,我从数据库值generating CSV文件。获取emails of users并生成CSV,但写入emails in one column instead of Row.

我试了很多,但没有找到任何解决方案。

下面写CSV的代码controller file

@users = User.all 
tempArr = [] 

@users.each do |u| 
    tempArr << u.email 
end 

respond_to do |format| 
format.csv { 
    send_data tempArr.to_csv, :type => "text/csv", :filename => "usercsv.csv" 
} 
end 

[email protected] [email protected] [email protected] 

数据显示想要显示

[email protected] 
[email protected] 
[email protected] 

任何人都有一个想法或诱骗到sortout。

在此先感谢

+0

你需要数据的行或列,尚不清楚我? –

+0

重复:http://stackoverflow.com/questions/13065130/rails-write-a-csv-file-column-wise –

+0

@OlegSobchuk更新的问题,请检查它。下面显示我要如何显示。 – user1780370

回答

0

User模型

def self.to_csv(options = {}) 
    CSV.generate(options) do |csv| 
    all.each do |user| 
     csv << user.email 
    end 
    end 
end 

,比控制器,你可以用它

send_data @users.to_csv, :type => "text/csv", :filename => "usercsv.csv" 

其中@users = User.all或任何

EDITED

你的动作要

@users = User.all 

respond_to do |format| 
format.csv { 
    send_data @users.to_csv, :type => "text/csv", :filename => "usercsv.csv" 
} 
end 

组织编写

添加到config/application.rb,或者只是模拟

require 'csv' 
+0

@ users.to_csv然后写入@user的整个对象。仍然在一行中的所有数据。没变化。 – user1780370

+0

是否在'User'模型中添加了'.to_csv'方法? –

+0

删除'@users.each do | u | tempArr << u.email end' –

相关问题