Ruby on rails Rails如何重写此旧路线图.connect?

Ruby on rails Rails如何重写此旧路线图.connect?,ruby-on-rails,ruby,ruby-on-rails-3,wsdl,Ruby On Rails,Ruby,Ruby On Rails 3,Wsdl,如何将旧的路由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.wsd

如何将旧的路由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'
但是我认为它不正确

试试这个:

match '/controller/service.wsdl' => 'controller#service.wsdl', :as => :wsdl
我猜您的控制器没有命名为控制器。如果是,我会将其重命名,并更改上述路线。

尝试以下操作:

match '/controller/service.wsdl' => 'controller#service.wsdl', :as => :wsdl

我猜您的控制器没有命名为控制器。如果是,我会将其重命名并更改上述路由。

我还没有找到将Rails 2参数化:控制器和:操作通用路由转换为更明确的Rails 3+格式的好方法。我要做的就是检查我应用程序中的每个排列,并为我需要支持的所有内容添加一个明确的路径。例如,在您的例子中,如果有3个控制器支持wsdl操作,我会使用match或get为每个控制器添加一个新路由

下面是它的外观,假设您有一个foo_控制器、bar_控制器和一个blah_控制器都支持wsdl操作:

get '/foo/service.wsdl' :to => 'foo#wsdl'
get '/bar/service.wsdl' :to => 'bar#wsdl'
get '/blah/service.wsdl' :to => 'blah#wsdl'
当您需要支持控制器上的每个操作时,这会变得更加有趣


如果有人有更好的方法,我很乐意(并且渴望)听到更好的方法。

我还没有找到一个好的解决方案来将Rails 2参数化:控制器和:操作通用路由转换为更明确的Rails 3+格式。我要做的就是检查我应用程序中的每个排列,并为我需要支持的所有内容添加一个明确的路径。例如,在您的例子中,如果有3个控制器支持wsdl操作,我会使用match或get为每个控制器添加一个新路由

下面是它的外观,假设您有一个foo_控制器、bar_控制器和一个blah_控制器都支持wsdl操作:

get '/foo/service.wsdl' :to => 'foo#wsdl'
get '/bar/service.wsdl' :to => 'bar#wsdl'
get '/blah/service.wsdl' :to => 'blah#wsdl'
当您需要支持控制器上的每个操作时,这会变得更加有趣


如果有人有更好的方法,我愿意(并且渴望)听到更好的方法。

我没有一个控制器名为controller。我不明白该如何创建路线。我找不到任何具有操作服务的控制器。wsdl以下是一个示例。假设您有一个名为posts_controller.rb的控制器。在该控制器中,您将有一个名为wsdl(def-wdsl…end)的方法(操作)。在该方法中,您拥有要执行的代码。在这种情况下,上面的路由将是:match'/posts/wsdl'=>'posts#.wsdl',:as=>:wsdl。然后可以有一个指向(“WSDL,WSDL路径”)的链接在你看来。我更新了一个从rails 1.2.6到rails 3的网站,有一条路线没有通向任何地方。那么你不需要它。只需用一个#我没有一个名为controller的控制器来评论它。我不明白我应该如何创建路线。我找不到任何带有action service的控制器。wsdl这里有一个例子。让我们来看看您有一个名为posts#controller.rb的控制器。在该控制器中,您有一个名为wsdl(def wdsl…end)的方法(操作)。在该方法中,您有要执行的代码。在这种情况下,上述路由将是:match'/posts/wsdl'=>'posts#.wsdl',:as=>:wsdl。然后您可以有一个指向(“wsdl,wsdl#path”)的链接在你看来。我更新了一个网站,从rails 1.2.6升级到rails 3,并且有一条没有通向任何地方的路线。那么你就不需要它了。只要用一句话把它说出来就行了#