2012-04-04 2 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 

ТНХ для любых идей

редактировать # 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
Я попытался добавить: формат => ложным, но это doens't, кажется, помогает.

матч '/ API/Get-места-на-расстоянии /: широта/долгота' => 'апи # get_locations_by_distance': формат => ложные

с

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

ответ

2

Он думает что .233434 является форматом

+0

хмм ... стрелять, что может быть обходной путь? возможно, добавив какую-то ненужную деталь в конце, например '.233434/fill'? – timpone

+0

Вы можете попытаться использовать ограничения, например 'match '...',: longitude =>/[+ -]? \ D + \. \ D + /' – MikDiet

+0

thx, сделал это в сочетании с ограничениями в ответе @Tilo. – timpone

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/

 Смежные вопросы

  • Нет связанных вопросов^_^