因此,当一个人生成脚手架时,控制器会自动创建这些块(?),就像这样
respond_to do |format|
format.html
format.xml { render :xml => @c }
end
这实际上做了什么以及它如何变为format.html
和format.xml
?每个人做什么?
答案 0 :(得分:8)
它定义当前操作将响应各种格式(操作的内容可以以多种方式呈现,而不仅仅是普通的旧HTML)。
/my/path/to/action.html
,它将呈现HTML(来自模板); /my/path/to/action.xml
,它将使用{ render :xml => @c }
呈现XML。 Rails将通过调用to_xml
变量; @c
方法生成XML
/my/path/to/action.json
,则会引发404错误。答案 1 :(得分:0)
Rails使用MIME type
标头或格式(Accept
; /controller/action/5.xml
; /controller/action/5.html
;等等...)确定的请求的/controller/action/5.json
来确定映射到请求的URL的控制器操作的响应格式。
这样,rails可以自动为同一控制器操作的许多类型的请求呈现不同的内容格式。