在rails中,给定一个对象数组,如何输出CSV列表而不是to_json?

时间:2011-09-11 21:42:04

标签: ruby-on-rails ruby-on-rails-3

如果我这样做:

Contact.select('email').first(1000).to_json 

我收到了电子邮件的JSON回复...我怎样才能获得一封电子邮件的CSV? XXX @ .com,XXX @ .com

我正在尝试从rails控制台执行此操作。

由于

2 个答案:

答案 0 :(得分:2)

Contact.select('email').map(&:email).join(", ")

答案 1 :(得分:2)

您可以安装this plugin以获得to_csv方法。或者你可以自己实现它。

我会为之前的选票投票,因为如果您需要打印出名称而不是电子邮件,那么您也应该实现转义,这将由插件为您提供。

更新

哦,我还没有意识到你只需要邮件,你可以使用这个插件执行以下操作:

@emails = Contact.select('email').first(1000).map(&:email)

respond_to do |format|
  format.html
  format.xml { render :xml => @emails }
  format.csv { send_data @emails.to_csv }
end