我能够将表数据导出到 CSV 文件,但是每条记录后都有一个空白行。为什么以及如何修复它?
在 index.html.erb
<%= link_to "Export to csv", request.parameters.merge({:format => :csv})%>
在 index.csv.erb 中
<%- headers = ["Id", "Name"] -%>
<%= CSV.generate_line headers %>
<%- @customers.each do |n| -%>
<%- row = [ n.id, n.fname ] -%>
<%= CSV.generate_line row %>
<%- end -%>
最佳答案
CSV.generate_line
在它生成的行的末尾添加一个新行字符,但 <%= %>
也是如此所以你得到了两条新线。
抑制来自 erb
的换行符表达式输出使用以下语法:<%= -%>
所以:
<%- headers = ["Id", "Name"] -%>
<%= CSV.generate_line headers -%>
<%- @customers.each do |n| -%>
<%- row = [ n.id, n.fname ] -%>
<%= CSV.generate_line row -%>
<%- end -%>
接受的答案留在从
erb
生成的新行中但抑制来自 CSV.generate_line
的新行我认为这不是最好的方法。
关于ruby-on-rails - rails 3.1 生成 CSV 文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7812231/