区分Rails中的两条路由

时间:2016-12-09 08:03:07

标签: ruby-on-rails

我有2条路线

get '/v1/cameras/:id' => 'cameras#single', as: :cameras_single

另一个是

get "v1/cameras/map" => "cameras#map"

两者都被打扰了,好像我放cameras/map,它作为参数转到camera/:id,有没有办法区分它们? 任何帮助都会感激不尽。

2 个答案:

答案 0 :(得分:3)

get "v1/cameras/map" => "cameras#map"放在get '/v1/cameras/:id' => 'cameras#single', as: :cameras_single文件的routes.rb之上。

路线文件从上到下扫描,并采用第一条匹配路线。

希望有所帮助!

答案 1 :(得分:0)

rails路由文件从上到下进行搜索和匹配,它们基本上是相同的url,两者都使用get,路径在真正意义上是相同的,update llx_societe set nom = concat(UPPER( left(nom,locate(' ',nom )-1)), ' ',substring(nom,locate(' ',nom )+1,length(nom))) 将始终匹配{{1}假设"v1/cameras/map"参数为'/v1/cameras/:id。您可以先让第一条路径出现,因此:id将始终先命中,然后任何其他路径map将与第一条路径不匹配,除非v1/cameras/map。如果/v1/cameras/:id可能等于:id = "maps",那么最好的方法就是更改网址,也可以添加一个新字符。