一直没有太弄明白关于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。不知道我这样的理解是否正确?
问题补充
多谢楼上的解答,但是我确实说的是respond_to和redirect_to之前的区别。
看了楼上在github上面个的Blog,相当Nice