Parameter mit einem "."

Hallo zusammen!

Ich habe folgendes Problem, ich generiere eine URL, mit dem Parameter
code, hier ein Beispiel:
url_for(:action => ‘verify’, :id => @user, :code => @user.code)

Der code ist eine “ein string mit user daten”.crypt(random_string), es
kann also ein “.”-Zeichen da mit drinnen sein.
In meinen Routes habe ich jetzt drinnen:
routes.verify ‘/verify/:id/:code.:format’, :controller => ‘account’,
:action => ‘verify’
Jetzt kann es natuerlich sein, dass ich einen Pfad bekomme, wie:
/verify/111/qQ.cl8CQlPjrw.html

Dann findet das Routing nicht, was es tun soll, weil der Punkt als
Trenner vorhanden ist.

Hat jemand 'ne Idee, wie ich das umgehen kann!?

Gruesse, Rainer

Am 23.02.2008 um 00:26 schrieb [email protected]:

Hat jemand 'ne Idee, wie ich das umgehen kann!?

die bösen zeichen rausfiltern?

“asd§$%.456sdfDSF453äö+”.gsub(/[^a-zA-Z0-9]/, ‘’) # => “asd456sdfDSF453”

Aber ich glaub eher dass du einen Schritt zurückgehen solltest du die
verification vielleicht anders machen solltest.

ciao, tom


Thomas R. “TomK32” Koll || http://tomk32.de || http://ananasblau.com
(NEW)
just a geek trying to change the world
Skype: TomK32 || Mail: [email protected]

Hallo Rainer!

[email protected] schrieb:

In meinen Routes habe ich jetzt drinnen:
routes.verify ‘/verify/:id/:code.:format’, :controller => ‘account’,
:action => ‘verify’
Jetzt kann es natuerlich sein, dass ich einen Pfad bekomme, wie:
/verify/111/qQ.cl8CQlPjrw.html

Dann findet das Routing nicht, was es tun soll, weil der Punkt als
Trenner vorhanden ist.

Wenn Du an der Stelle auf die “schöne” URL verzichten kannst, lass
vielleicht einfach den :code-Parameter in den Routes weg. Dann sollte
die generierte URL die code-Daten als einfachen Query-Parameter
enthalten, also z.B. verify/111.html?code=qQ.cl8CQlPjrw. Hier dürfte der
Punkt keine Probleme machen.

Viele
Grüße,Sebastian