我是Rails的新手,并且一直在关注rails webpage的教程。
使用scaffold指令创建“post”模型,我发现控制器中的new
动作有一个XML格式的特殊指令:
def new
@post = Post.new
respond_to do |format|
format.html # new.html.erb
format.xml { render :xml => @post }
end
end
在创建新帖子时,我看不到支持XML请求的原因。浏览到/posts/new.xml什么都不返回。这是什么目的?
答案 0 :(得分:3)
new
操作背后的原因只是为xml客户端提供默认数据(如果需要,可以提供其他内容)。
所有路由都使用format指令,除非您愿意,否则无需支持格式。
上面的代码可能看起来像:
respond_to do |format|
format.html # renders new.html.erb
format.xml { render :xml => {:message => "XML is not supported"} }
format.json { render :text => @post.to_json }
format.js # renders new.js.erb
end
此外,这不仅限于new
操作,也适用于您的所有操作。要使用的格式取自url(如果路由设置为使用它),或者来自浏览器发送的HTTP-Accept标头。