使用默认路由,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路由指南总是一个好主意,它相当深入,是解决任何路由问题的一个非常好的第一站资源