2012-09-25 59 views
1

我有存儲在我的Rails中數據庫中的Linux配置文件明文渲染頁面,我希望能夠通過一個Web請求Rails 3中使用視圖

我在Linux方面的目標是下載配置捲曲/ wget網頁,將其與當前配置進行比較,然後掛上服務器。足夠容易做一個腳本。

在on Rails的正常情況下,你可以做

render :text => @config_file 

不過,我需要做一些數據的格式首次採用靜態頭,等等,這是不是一個襯墊,所以我需要能夠呈現一個視圖。

我有以下的在我的控制器設置,但我仍然得到最小的一組HTML標記的文檔

render(:content_type => 'text/plain', :layout => false); 

我以前做過類似的事情在.net中,所以它打印出來文字解釋文件\n。我如何在Rails中獲得?

+0

這似乎應該工作。你確定這些流浪標籤不是使用在你的視圖中生成HTML的助手的結果嗎? –

回答

8

通常情況下,這是與

# config/initializers/mime_types.rb 
# ... 
# Mime::Type.register "text/plain", :plaintext 
# No changes needed as rails comes preconfigured with the text/plain mime type 


# app/controllers/my_controller.rb 

class MyController < ApplicationController 
    def my_action 
    respond_to do |format| 
     format.text 
    end 
    end 
end 

和查看文件

# app/views/my_controller/my_action.text.erb 
... 

關於您在DOM找到最小的HTML做:你是從某種在瀏覽器內看到這檢查員,就像谷歌瀏覽器或Safari瀏覽器一樣?如果是這樣,那麼不用擔心,這是由瀏覽器添加以顯示您的文本/純文檔內聯。如果您查看交付文檔的來源(ctrl-u),則不應顯示HTML。

+0

謝謝。 Ctrl-U顯示我已經是正確的。 HTML標籤被Firebug插入。 Mime類型註冊是一個很好的消息,因爲它看起來很愚蠢,Rails沒有內置的用於respond_to的明文選項。 – Cody

+0

如果你只是使用'text',你真的需要添加mime類型的'純文本'嗎?不會rails瞭解MIME類型,並將其設置爲「text/plain」? – Magne

+1

很明顯,它甚至可以讓.text在沒有註冊新的mimetype的情況下開箱即用。從您的導航控制檯中查看'Mime :: EXTENSION_LOOKUP [「text」]''。所以你不僅僅是對的。 – moritz