このトピックで試したすべての Google 検索で、私の問題の逆の結果が得られました。
Web サービスのユーザーがデータをエクスポートできるように、動的にダウンロード可能なテキスト ファイルを作成しています。標準の MVC 動作を使用して、オンザフライでテキスト ファイルを書き込み、コントローラーで次のようにファイルのダウンロードを強制するようにヘッダーを設定しています。
headers["Content-Disposition"] = "attachment; filename=#{filename}.txt"
Windows のエンドユーザーがファイルをダウンロードしてメモ帳で開いているという問題が発生しています。
ビュー ファイルをできる限り多くの異なる方法で再作成し、別のエンコーディングとして保存し、Windows マシンで再作成し、すべての行の末尾に CRLF があることを 3 回確認しました。
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 権限がありません。サーバー管理者に何かをインストールするように依頼することもできますが、その前にそれが機能するかどうかを知りたいです。
スタックオーバーフローを助けてください、あなたは私の唯一の希望です!