生成CSV创建问题,因为我在数据中有引号或逗号

Pra*_*hra 1 ruby csv ruby-on-rails ruby-on-rails-3

在我的result.csv.erb中,我在结果的某些列中创建了csv的问题,我得到数据溢出.

我有一个名为title的列,可以是形式Son's of fortune,或者Love,Fear,Hatred.在第一种情况下,由于某种原因,我得到了我的结果.另一方面,数据被拆分为默认值:col_sep是,.

<%- @results.each do |result| -%>
    <%- row = result.values -%>
    <%= CSV.generate_line row, :row_sep => nil, :quote_char => "'" %>
<%end%>
Run Code Online (Sandbox Code Playgroud)

对于eg-:标题是Gas Shoe (Grey, Chestnut),结果溢出到其他列

title - &quot;Gas Shoe (Grey
seller -  Chestnut)&quot;   
Run Code Online (Sandbox Code Playgroud)

如果绝对必要,我愿意在插入之前编辑数据.那么任何想法?

Jef*_*tte 8

默认情况下,rails3中的所有字符串都是不安全的,因此您需要在行上调用#html_safe.从这个答案:

<%=
response.content_type = 'application/octet-stream'
CSV.generate do |csv|
  @persons.each do |person|
    csv << [ person[:name], person[:nickname] ]
  end
end .html_safe
%>
Run Code Online (Sandbox Code Playgroud)