Rails路由不起作用 - 不确定原因

时间:2012-04-04 15:46:21

标签: ruby-on-rails rails-routing

遇到路由问题,应该非常简单,但似乎很简单,只是不起作用:

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

任何想法

编辑#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
我尝试添加:format =>是假的,但这似乎也没有帮助。

匹配'/ api / get-locations-by-distance /:latitude /:longitude'=> 'api#get_locations_by_distance',:format =>假

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

2 个答案:

答案 0 :(得分:2)

它认为.233434是格式

答案 1 :(得分: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/