一直沒有太弄明白關於respond_to 和 redirect_to之前的區別,因爲以前的代碼大部分都是由rails自動生成的腳手架,在這個基礎上在進行一些修改,但是最近想把這些代碼都手寫一遍,熟悉一下,所以就產生了問題,不知道這兩者的區別是什麼。查了查文檔,是這樣寫的:
respond_to:
respond_to do |format|
format.html
format.xml { render xml => @people.to_xml }
end
上面的代碼是說,如果客戶端需要從這個action得到一個HTML的響應,就渲染html模板,但是如果客戶端需要XML,那麼就返回XML格式的數據。(rails根據客戶端所提交請求中HTTP accept header來決定響應的類型)
上面的一段話是我文檔當中的解釋(當然只是大意,翻譯的並不準確,因爲還涉及到一些上下文的關聯),在文檔當中還有這樣的一段話,大意是說:如果在應用程序當中不需要web-service的支持,那麼就可以用redirect_to將請求重定向到一個action,而如果需要web-service的支持,就需要使用respond_to。不知道我這樣的理解是否正確?