2011-04-11 89 views
6

我想在我的导轨应用程序中创建一个路线来处理GPS坐标参数。目的是找到靠近特定位置的餐馆。用GPS参数处理导轨路线

这是我开始:
match "/restaurants/near/:lat/:lng(/:range)", :to => "restaurants#near", :as => "near", :constraints => {:range => /\d+/}

似乎路由器有浮动参数的问题,比如/restaurants/near/53.0123/10.5678的网址无法识别。在轨道URL中处理GPS坐标是否有解决方案或最佳做法?

谢谢!

+0

是这条道路对你合适?:'get'/ restaurants/near'=>'restaurants#near',:as =>:near_restaurants'。并使用它:'near_restaurants_path(:lat => 1.1,:lng => 2.2,:range => 10)'。生成的路径将成为'/ restaurants/near?lat = 1.1&lng = 2.2&range = 10'。最重要的部分是它在控制器中是一样的。 – PeterWong 2011-04-11 14:17:10

回答

11

的问题造成的,因为Rails的尝试使用“点”的搜索格式(.:format) 所以,你可以添加一些约束来解决这个问题,比如:

match "/restaurants/near/:lat/:lng(/:range)", :to => "restaurants#near", :as => "near", :constraints => {:lat => /\-?\d+(.\d+)?/, :lng => /\-?\d+(.\d+)?/ , :range => /\d+/} 
+0

/\ - *用于接受负坐标 – eveevans 2011-04-11 22:53:24

+0

非常感谢!这有帮助! – 2011-04-12 09:23:09