Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/three.js/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ruby on rails 防止Merb剥离运输返回?_Ruby On Rails_Ruby_Unix_Merb - Fatal编程技术网

Ruby on rails 防止Merb剥离运输返回?

Ruby on rails 防止Merb剥离运输返回?,ruby-on-rails,ruby,unix,merb,Ruby On Rails,Ruby,Unix,Merb,我在这个主题上尝试过的每一次谷歌搜索都与我的问题相反 我正在为web服务的用户构建一个动态的可下载文本文件,以便他们可以导出数据。我使用标准MVC行为动态编写文本文件,设置标题以强制在控制器中下载文件,如下所示: headers["Content-Disposition"] = "attachment; filename=#{filename}.txt" 我遇到了一个问题,Windows终端用户正在下载文件并用记事本打开它——所有的行尾都被去掉了,这只是一个大混乱 我已经用尽可能多的不同方式重

我在这个主题上尝试过的每一次谷歌搜索都与我的问题相反

我正在为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
的数据^M
帖子^M
^M
^M
提示:^M
提示字幕:^M
^M
标题:^M
副标题:^M
已创建:^M
更新:^M
类型:^M
内容:^M
^M
^M
==^M
^M
^M
我不能要求Windows用户使用其他文本阅读器。以前肯定有人解决过这个问题。此问题的另一方面:我在此服务器上没有sudo权限。我可能会要求服务器管理员安装一些东西,但我想在安装之前知道它是否能正常工作


帮我,你是我唯一的希望

因此,我最终得出的解决方案有点老套,欢迎提出更好的建议

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


不是很完美,但现在就可以了。

我很久没有生成txt文件了(老实说,上次是用php生成的),但在EOL中简单的
“\r\n”
总是足以驯服它。