2012-04-04 83 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/

相關問題