如何在Rails中设置路由的默认格式?

使用默认路由,request/posts/:id映射到带有:format=>“html”。我在show操作中使用了一些xhtml元素,除非:content\u类型设置为xml,否则无法正确呈现这些元素。我目前正在通过呈现show.xml.erb并手动设置content_类型来解决这个问题,如下所示:

format.html{render:template=>“/posts/show.xml.erb”,
:locals=>{:post=>@post},:content_type=>“text/xml”}

这看起来很傻。如何更改routes.rb,以便使用format=>“xml”?谢谢

请求的默认格式:

可以使用默认哈希将给定路由的默认格式设置为xml

示例:

#单匹配默认为XML(/plots/1与/plots/1.XML相同)
匹配“posts/:id”=>'帖子#show',:默认值=>{:format=>'xml'}
#使用资源,默认为XML(所有操作默认使用XML)
资源:帖子,:默认值=>{:format=>'xml'}
#使用资源并与其他选项混合
资源:员额,
:仅=>[:新建,:创建,:销毁],
:默认值=>{:format=>'xml'}

搜索官方的RubyonRails路由指南总是一个好主意,它相当深入,是解决任何路由问题的一个非常好的第一站资源

发表评论