3

我正在使用 FasterCSV 在 Rails 3 应用程序中生成报告的 CSV 输出。这是一个代码片段:

<%= FasterCSV.generate do |csv|
  @groups.each do |b|
    record = [ b.group, b.organization_name, b.status, b.comments ]
    csv << record
  end
end 
%>

当 FasterCSV 包含一个空字符串时,它使用一对空双引号。

不幸的是,Rails 3 将这些引号编码为实体,这在 Excel 中效果不佳。这是我的 CSV 输出的样子(当 b.comments 为 nil 或空字符串时):

Rafeland,Rafe Organization,Submitted,&quot;&quot;

防止 Rails 对这些实体进行编码的普遍接受的方法是什么?我知道该raw方法,但是我可以将 CSV 生成放入其中。

4

1 回答 1

5

我建议生成一个文件(可能只是一个 Tempfile)并提供它,但是如果你想继续按照自己的方式做,那么你需要告诉 Rails 整个 CSV 是 HTML 安全的。假设FasterCSV.generate返回一个普通的字符串,然后简单地附加html_safe

<%= FasterCSV.generate do |csv|
  ...
end.html_safe
%>
于 2011-07-15T19:30:56.080 回答