2012-04-04 22 views
0

ein Routing-Problem zu haben, sollte wirklich einfach sein, aber es scheint unkompliziert und einfach nicht funktioniert:Rails Route nicht funktioniert - nicht sicher, warum

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

mit diesem Aufruf:

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

thx für alle Ideen

bearbeiten # 1
Wenn ich es das folgende Update:

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

und

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

Es funktioniert immer noch nicht.

bearbeiten # 2
Ich habe versucht, das Hinzufügen das: format => false aber diese doens't entweder zu helfen scheinen.

Spiel '/ api/get-locations-by-Abstand /: Breitengrad /: Länge' => 'api # get_locations_by_distance': format => false

mit

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

Antwort

2

Es denkt dass .233434 ist Format

+0

hmm ... schießen, was Abhilfe könnte? vielleicht am Ende etwas unnötiges Stück wie '.233434/fill' hinzufügen? – timpone

+0

Sie können versuchen, Constraints zu verwenden, wie 'match '...',: longitude =>/[+ -]? \ D + \. \ D + /' – MikDiet

+0

thx, tat dies in Verbindung mit Constraints in @Tilo answer. – timpone

0

Es ist wie Mik_Die sagte - die. ist das Trennzeichen für das Format in Rails.

Hier ist ein Workaround: Sie können Ihre eigene Segmentierungsbeschränkung angeben. auch

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

Siehe:

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

Verwandte Themen