阻止Merb剥离回车?

时间:2014-05-27 15:06:50

标签: ruby-on-rails ruby unix merb

我在这个主题上尝试过的每一次Google搜索都出现了与我的问题相反的问题!

我正在为Web服务的用户构建一个动态可下载文本文件,以便他们可以导出他们的数据。我正在使用标准的MVC行为来动态编写文本文件,设置标题以强制在控制器中下载文件:

headers["Content-Disposition"] = "attachment; filename=#{filename}.txt"

我遇到了Windows最终用户正在下载文件并使用记事本打开文件的问题 - 所有行结尾都被删除了,这只是一个大问题。

我已经以尽可能多的方式重新创建了我的视图文件,将其保存为不同的编码,在Windows机器上重新创建它并三重检查它在每行的末尾都有CRLF。

cat -v app/views/export/export.text.erb显示了这一点:

<%= session.user.username %>'s Data^M
<%= @posts.count %> Posts^M
^M
<% @posts.each do |post| -%>^M
Prompt: <%= post.prompt.title %>^M
Prompt subtitle: <%= post.prompt.subtitle %>^M
^M
Title:    <%= post.title %>^M
Subtitle: <%= post.subtitle %>^M
Created:  <%= post.created_at.to_s %>^M
Updated:  <%= post.updated_at.to_s %>^M
Type:     <%= post.type %>^M
Content:^M
<%= JSON.pretty_generate(post.fields) %>^M
^M
===^M
^M
<% end %>^M

我不能要求Windows用户使用其他文本阅读器。其他人之前已经解决了这个问题。此问题的另一方面:我在此服务器上没有sudo权限。我可能会要求服务器管理员安装一些东西,但我想知道它会在我之前工作。

帮我Stack Overflow,你是我唯一的希望!

1 个答案:

答案 0 :(得分:0)

所以我最终得到的解决方案是一个黑客攻击,欢迎更好的建议。

我没有试图找到CR被剥离的位置,而是停止强制下载带有标题的文本文件(如上所述),而是允许浏览器以其他方式呈现文本。 IE和其他浏览器都可以原生地处理行结尾而不需要任何干扰,并且用户可以复制文本文件或&#34;另存为&#34;它将在记事本中正确显示。

不完美,但它现在要做。