微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

ruby-on-rails – rails 3.1生成CSV文件

我能够将表数据导出到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中抑制了新行,我认为这不是最好的方法.

原文地址:https://www.jb51.cc/ruby/269378.html

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐