rails csv.erb视图包含空白



我有一个index.csv.erb文件,代码如下:

<% headers = ['PrL', 'PrG', 'UOM', 'Quantity', 'Eff.Date', 'End Date','Price','Disc', 'P', 'Gr/Net'] %>
<%= CSV.generate_line(headers).strip.html_safe %>
<% @pricelist_price_groups.each do |pricelist_price_group| %>
  <% start_at = pricelist_price_group.start_at.strftime("%d/%m/%y") unless pricelist_price_group.start_at.blank? %>
  <% end_at = pricelist_price_group.end_at.strftime("%d/%m/%y") unless pricelist_price_group.end_at.blank?  %>
<%= CSV.generate_line([pricelist_price_group.pricelist_id,
                         pricelist_price_group.price_group_id,
                         pricelist_price_group.sale_uom_id,
                         start_at,
                         end_at,
                         pricelist_price_group.price,
                         pricelist_price_group.disc_dollar,
                         pricelist_price_group.disc_percent,
                         pricelist_price_group.price_flag,
                         pricelist_price_group.gross_or_net]).strip.html_safe %>
<% end %>

我添加任何空白,如

<% headers = ['PrL', 'PrG', 'UOM', 'Quantity', 'Eff.Date', 'End Date','Price','Disc', 'P', 'Gr/Net'] %>
<%= CSV.generate_line(headers).strip.html_safe %>

然后将空白写入CSV文件。其他情况包括在<%= CSV.generate_line 之前有两个空格作为选项卡

这一定是因为rails正在渲染的视图。如果有一种方法我仍然可以保留空白的使用来保持代码的干净?

我遇到了同样的问题,并在另一个Stack Overflow问题中使用这个答案解决了它。

即使用strip作为标题行:

<%= CSV.generate_line(headers).strip%>

内容为.html_safe.strip

<%= CSV.generate_line(row).html_safe.strip%>

我发现帖子链接非常有效。

<%- export = CSV.generate(" ", { headers: ["Array", "Of", "Headers"], write_headers: true, encoding: "UTF-8"}) do |csv| -%> 
<%- csv.add_row data -%> 
<%- end -%>
<%= export.lstrip.html_safe -%> 

最新更新