如何将这条旧路由Rails 1.2.6重写为Rails 3? :
# Allow downloading Web Service WSDL as a file with an extension
# instead of a file named 'wsdl'
map.connect ':controller/service.wsdl', :action => 'wsdl'
我无法看到我应该如何使用匹配路线等。
我用过:
match ':controller/service.wsdl', :action => 'wsdl'
但我不认为它的工作正确
答案 0 :(得分:1)
试试这个:
match '/controller/service.wsdl' => 'controller#service.wsdl', :as => :wsdl
我猜你的控制器没有命名为控制器。如果是,我会重命名并改变上述路线。
答案 1 :(得分:0)
我还没有找到一个很好的解决方案来将Rails 2参数化:controller和:action通用路由转换为更明确的Rails 3+格式。我必须做的就是浏览我的应用程序中的每个排列,并为我需要支持的所有内容添加明确的路径。例如,在您的情况下,如果您有3个支持wsdl操作的控制器,我会使用match或get为每个控制器添加新路由。
这里有它的样子,假设你有一个foo_controller,bar_controller和一个blah_controller都支持wsdl动作:
get '/foo/service.wsdl' :to => 'foo#wsdl'
get '/bar/service.wsdl' :to => 'bar#wsdl'
get '/blah/service.wsdl' :to => 'blah#wsdl'
当您需要在控制器上使用以下操作时,这会变得更有趣:action。
如果有人有更好的方法,我会打开(并且渴望)听到更好的方法。