Ruby on rails 为什么铁轨;新";有XML格式指令吗?

Ruby on rails 为什么铁轨;新";有XML格式指令吗?,ruby-on-rails,Ruby On Rails,我是Rails的新手,一直在关注Rails上的教程。 使用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/

我是Rails的新手,一直在关注Rails上的教程。 使用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不会返回任何内容。这样做的目的是什么?

新建
操作背后的原因仅仅是为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头