Ruby on rails 为什么铁轨;新";有XML格式指令吗?
我是Rails的新手,一直在关注Rails上的教程。 使用scaffold指令创建“post”模型,我发现控制器中的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/
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头