2014-01-15 6 views
6

ファイルを(HTMLをレンダリングせずに)プレーン/テキストでレンダリングする方法を教えてください。Ruby on Rails:ファイルをプレーンテキストとしてレンダリングする方法(HTMLなし)

私が試してみた:

render file: "path/to/file", layout: false 

render file: "path/to/file", content_type: 'text/plain' 

も両方

render file: "path/to/file", layout: false, content_type: 'text/plain' 

しかし、そこ応答にまだいくつかのhtmlを。

私は1.9.3

おかげで、事前にレール3.2.14とルビーを使用しています。

EDIT 1:

愚かな私は、これは実際に動作します:

render file: "path/to/file", layout: false, content_type: 'text/plain' 

私はGoogleのクロムを使用して要素を検査して、そのタグが表示されたHTMLがあります。しかし、ソースを見ると、HTMLタグはありません。

私はレンダリングしようとしていたファイルは、拡張子のないカスタムメイドのファイルで、それは)私が(d3.tsvにパラメータとして使用するタブ区切り値(D3.js)

はあなたありがとうございました尽力。 :D

EDIT 2:編集1では

、私は応答をチェックし、それが任意のHTMLタグが付属していないのは事実です。しかし、d3.tsv()(D3.js)のパラメータとして使用すると、明らかに機能しません。私はthe answerを試してうれしいJetAbeからそれは動作します!だから私はJetAbeの答えを受け入れた。実際に

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.

、彼らはよ:

+0

何がレンダリングされていますか? 'layout:false'はレイアウトを適用せず、そのファイルのwhatsがあなたのものであることを意味します。 – sevenseacat

+0

ここをクリックして質問を編集し、答えて、受け入れられたとマークする代わりに、他の人がそれを知っていることを知っておくと、http://stackoverflow.com/questions/12591566/rails-3-render-plaintext-page-using-view – Abs

+0

解決し、時間を無駄にしない。 –

答えて

4

は、私はあなたのENVがレール3であるので、あなたがこの

send_file path_to_file 
7

のRails 4.1は今render方法については、以下のAPIを公開してみてくださいすることができると思いますbe deprecating use of render: text in a future release.

+0

今後の検索人のために:Rails 4.0.0では、次のように書く必要があります: 'render text:"何らかのテキスト "。 :プレーンは動作しません。 – 7stud

+1

@ 7studその反対が当てはまる。 "今後のバージョンでは、render:textの使用を非難する予定です。ですから、より正確な:plain、:html、:bodyオプションを使用してください。レンダー:テキストを使用すると、コンテンツがtext/htmlとして送信されるため、セキュリティ上のリスクが生じる可能性があります。 参照:http://guides.rubyonrails.org/upgrading_ruby_on_rails.html#rendering-content-from-string –