类似于这个问题 https://stackoverflow.com/questions/3885687/ruby-on-rails-csv-putting-quotquot-instead-of-actual-quotes除非我不使用html_safe
整个项目中的任何地方。
我生成一个 CSV 文件index.csv.erb
像这样:
<%=
response.content_type = 'application/octet-stream'
CSV.generate do |csv|
@persons.each do |person|
csv << [ person[:name], person[:nickname] ]
end
end
%>
PROBLEM:如果数据库 (ActiveRecord/MySQL) 中的昵称为 NULL,则 CSV 文件关联元素将变为""
。我希望""
,或者甚至什么都没有。
结果文件示例:
Nicolas, Nico
Joe, ""
我怎样才能防止这种情况发生?
这里的问题是你没有使用html_safe
。您的昵称字段为空并转换为""
在 csv 文件中,但 Rails 认为它不安全并且 html 转义了。
只需致电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
%>
您链接到的解决方案不再适用于 Rails 3,因为默认情况下所有字符串都被认为是不安全的,而 Rails 2 中的情况并非如此。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)