Ruby on Rails:如何将文件呈现为纯文本(没有任何HTML)

wry*_*str 6 ruby-on-rails render file plaintext

如何在rails中将文件呈现为普通/文本(不呈现任何HTML)?

我试过了:

render file: "path/to/file", layout: false
Run Code Online (Sandbox Code Playgroud)

render file: "path/to/file", content_type: 'text/plain'
Run Code Online (Sandbox Code Playgroud)

两者都是

render file: "path/to/file", layout: false, content_type: 'text/plain'
Run Code Online (Sandbox Code Playgroud)

但是仍然有一些回复的HTML.

我正在使用rails 3.2.14和ruby 1.9.3

提前致谢.

编辑1:

傻我,这实际上有效:

render file: "path/to/file", layout: false, content_type: 'text/plain'
Run Code Online (Sandbox Code Playgroud)

我正在使用谷歌浏览器检查元素,因此会出现一个html标记.但是当我看到源代码时,没有HTML标记.

我试图渲染的文件是一个没有扩展名的自定义文件,它是一个制表符分隔值,我用作d3.tsv()中的参数(D3.js)

谢谢大家的努力.:d

编辑2:

在编辑1中,我检查了响应,它确实没有任何html标记.但是在d3.tsv()(D3.js)中使用它作为参数显然不起作用.很高兴我想答案JetAbe和它的作品!所以我接受了JetAbe的回答.

mec*_*oup 7

Rails 4.1现在公开了该render方法的以下API :

render :plain will set the content type to text/plain render :html will set the content type to text/html render :body will not set the content type header.

事实上,他们将在未来的版本中弃用render: text.


Abs*_*Abs 5

我想因为你的环境是rails 3你可以尝试这个

send_file path_to_file
Run Code Online (Sandbox Code Playgroud)