gpt4 book ai didi

ruby-on-rails - 从Ruby中的CSV转义逗号

转载 作者:行者123 更新时间:2023-12-04 05:13:41 25 4
gpt4 key购买 nike

我正在Ruby应用程序中创建一个CSV下载文件,其中包含一些“美元金额”字段。这些字段的数据格式为周期性,例如$ 35,456,当这些数据以CSV格式输入时,它会分为两个字段,即逗号后的数据移至CSV的下一列。

这是我呈现CSV的代码

Sell Date, Sell Amount
- @rows.each do |row|
= "#{row[0]},#{number_to_currency(row[1], :precision => 2)}"

这是用于返回CSV的操作
def fifolog
@rows = Report.fifolog()
respond_to do |format|
format.csv { render csv: {:rows =>@rows }}
end
end

我可以使用任何转义字符来逃脱 ruby 中的“,”吗?

谢谢

最佳答案

使用Ruby的内置to_csv方法。

如果您尚未这样做,则需要require 'csv'

Sell Date, Sell Amount
- @rows.each do |row|
= [ row[0], number_to_currency(row[1], :precision => 2) ].to_csv( row_sep: nil ).html_safe
to_csv可以直接在 Array上使用,并且可以进行您期望的所有转义操作。
row_sep: nil可以防止 \n在每一行的末尾,因为您已经使用 each这样做了。尝试不这样做的话,您会看到一个额外的空白行。如果仅生成单个CSV字符串,则需要保留 \n来分隔行。
html_safe可防止 "字符显示在CSV文件中。

那应该做!

J.P

关于ruby-on-rails - 从Ruby中的CSV转义逗号,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12318606/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com