2016-07-29 48 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' –

相關問題