渲染文件时不解释rails标签

时间:2013-11-27 14:09:03

标签: ruby-on-rails ruby-on-rails-3

我有一个要求,我尝试使用渲染通过控制器渲染文件。我不希望rails引擎解释呈现的文件。这可能吗?

在我的控制器中我给出了:

render :file => "<file-path>/abc.txt" 

并且文件abc.txt具有以下内容:

<% if (1) 
Just a piece of code    
 %>

现在当流程到达渲染时,rails引擎会尝试解释该文件并为未使用的if子句抛出错误。我只想显示文件的内容而不解释它。我试过将content_type设置为“text”而没有运气。

任何帮助都将不胜感激。

2 个答案:

答案 0 :(得分:1)

试试这个:

render text: File.open("<file-path>/abc.txt").read

答案 1 :(得分:0)

Marek答案很好,但请确保检查file_path,这样您就不会随意为系统中的任何文件提供服务。您不希望允许用户提供您的database.yml文件(包含密码),初始化代码以及用于签名cookie的密钥/密码(识别您网站上任何用户的盗窃),甚至系统文件影子密码文件,ssh密钥等等。