2012-09-22 58 views
1

試圖讓軌道中的控制器塊工作。在迴應網址時,我想顯示與模型相關的.png文件。Rails控制器 - format.png

respond_to do |format| 
format.html { render :blank } 
format.json { render json: @play } 
format.png do 
send_data data, :type => "image/png", :filename => 'screenshot.png' 
end 

數據工作正常,是一個200Kb的文件。問題是,當我去的網址:

http://localhost:8080/plays/testing1.png 

它帶給我一個空白頁(我創建show.png.erb,並在那裏什麼都沒有)。不知道如何讓png文件顯示爲內聯或可下載。

感謝您使用Conent-Disposition的任何幫助

+0

具有respond_to行的控制器的名稱/ url是什麼? – emrea

+0

Route:'play GET /plays/:id(.:format)plays#show〜 控制器名稱是:PlaysController。行動的名稱是顯示 - 這是你需要什麼? –

+0

對我來說是正確的。 – emrea

回答

0

嘗試,你可以將其設置爲附件或內聯。

+0

我試過,':send_data data,:type =>「image/png」,:filename =>'screenshot.png',:disposition =>「attachment」'和'send_data data, :type =>「image/png」,:filename =>'screenshot.png',:disposition =>「inline」 - 沒有骰子。 –

+0

空白的show.png.erb頁面會成爲問題嗎?我發現它會在src標記中顯示='',但是當它呈現頁面時img已損壞 –

+0

糟糕,忘記在事先評論中添加您的名字:@alex –

0

老問題,但我一直在掙扎了同樣的問題了幾個小時所以,如果任何人認爲這在未來:

我也越來越處正在Chrome中生成的文檔同樣的問題與一個破碎的圖像和標籤,即<img style="-webkit-user-select: none" src="http://localhost:3000/open/28">。同樣在Firefox中,我收到一個錯誤,說圖像有問題。

解決辦法:我改send_datasend_file這給了我下面的代碼:

respond_to do |format| 
    format.png { send_file img ,type: "image/png", disposition: 'inline' } 
end 

More info about send_file here

後,通過無破碎的形象標籤服務的PNG圖像反應的路線。

希望能幫助別人。