我有2条路线
get '/v1/cameras/:id' => 'cameras#single', as: :cameras_single
另一个是
get "v1/cameras/map" => "cameras#map"
两者都被打扰了,好像我放cameras/map
,它作为参数转到camera/:id
,有没有办法区分它们?
任何帮助都会感激不尽。
答案 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"
,那么最好的方法就是更改网址,也可以添加一个新字符。