2011-09-15 45 views
1

是否有可能用html而不是json響應json請求?Rails 3.1:與HTML的respond_to json請求

我想做到這一點:

respond_to do |format| 
    format.html { render 'page' } 
    format.json { render 'page' } #render an html page instead of a JSON response 
end 

但Rails會尋找一個「page.json」,並會引發錯誤。

回答

4

您需要明確設置的格式,內容類型(默認爲application/json)和佈局圖(默認爲無):

respond_to do |format| 
    format.html { render 'page' } 
    format.json do    # render an html page instead of a JSON response 
    render 'page.html', { 
     :content_type => 'text/html', 
     :layout  => 'application' 
    } 
    end 
end 
0

只需使用完整的文件名。 render 'page.html'(或任何文件被稱爲)。

請注意,雖然這應該工作,如果你這樣做,你可能做錯了什麼。考慮如何重構代碼,以便不必彎曲規則。

+0

我知道這是錯的。我重用了一些處理JSON帖子的代碼,但現在我想用最少的努力渲染驗證錯誤。 –