2012-04-04 57 views
0

有一个路由的问题,应该是很简单的,但看起来非常简单,只是不工作:Rails的路线不工作 - 不知道为什么

match '/api/get-locations-by-distance/:latitude/:longitude' => 'api#get_locations_by_distance' 

与此调用:

http://localhost:3000/api/get-locations-by-distance/34.035645/-118.233434 

THX的任何想法

编辑#1
如果我将其更新到以下几点:

match '/api/get-locations-by-distance/:latitude/:longitude/:stub' => 'api#get_locations_by_distance' 

http://localhost:3000/api/get-locations-by-distance/34.035645/-118.233434/stub 

它仍然无法正常工作。

编辑#2
我尝试添加了:格式=>假,但这好好尝试一下似乎于事无补。

匹配 '/ API/GET-位置按距离/:纬度/:东经'=> 'API#get_locations_by_distance':格式=>假

http://localhost:3000/api/get-locations-by-distance/34.035645/-118.233434 

回答

2

它认为那.233434是格式

+0

嗯......拍,这可能是解决方法吗?可能会在'.233434/fill'的末尾添加一些不必要的部分? – timpone 2012-04-04 16:04:49

+0

你可以尝试使用约束,比如'match'...',:longitude =>/[+ - ]?\ d + \。\ d + /' – MikDiet 2012-04-04 16:40:32

+0

thx,这是否与@Tilo答案中的约束相结合。 – timpone 2012-04-04 17:19:56

0

这就像Mik_Die说的 - 。是Rails格式的分隔符。

这是一个解决方法:您可以指定您自己的分段约束。

match '/api/get-locations-by-distance/:latitude/:longitude' => 'api#get_locations_by_distance' , 
     :constraints => { :latitude => /\d+\.\d+/ , :longitude => /\d+\.\d+/ } 

参见:

http://x3ro.de/rails-3-routing-parameters-dots/

相关问题