2011-07-27 32 views
4

哇,真是一個偉大的網站!我希望這個問題符合:-)Rails 3的響應頭

一般要求,這個問題是關於如何使用render方法時在軌設置響應頭。具體來說,我有一個文檔的降價版本,我希望瀏覽器默認保存爲文件,而不是顯示。我發現,您可以設置標題與head方法,像這樣:

respond_to do |format| 
    format.html {... 
    format.text { head(:content_disposition => "attachment") } 
end 

render的選項不喜歡這個工作,我無法找到任何來自控制器事先訪問頭。任何人都可以提供建議嗎?

感謝您花時間閱讀我的問題。

+0

我很驚訝這是多麼困難找到這樣的信息:'response.headers [關鍵] = value'是的伎倆。 – naomik

回答

0

我不知道是什麼的答案是,但這種快速搜索其他文章想出了這一點:Rails; save a rendered views html content to file

這是否做的伎倆?

+2

嘿喬!耶SEND_DATA是一個很好的方法我不知道的,另一個是用於指定與該響應對象頭: '''response.headers [「內容處置」] =「附件;文件名= foo.md'''' –

+0

阿源的響應,它說使用'的ActionController :: Base的#改爲headers'。我認爲這是這裏定義,但我不能自稱完全理解這是怎麼回事: https://github.com/rails/rails/blob/master/actionpack/lib/action_controller/metal.rb –

2

是使用#headers方法

respond_to do |format| 
    format.html {... 
    format.text do 
    headers[:content_disposition] = "attachment; filename=\"filename.ext\"" 
    render... 
    end 
end