2010-12-14 27 views
0

Existe-t-il un moyen de gérer le codage d'URL avec ActiveResource? Plus précisément, je cherche un moyen de passer une adresse e-mail en tant que paramètre.Comment l'encodage de l'URL peut-il être géré avec ActiveResource?

Actuellement, ma requête échoue car le symbole @ reçoit l'URL codée %40, provoquant l'échec de la recherche sur l'application distante.

Par exemple, la requête suivante sur le modèle ActiveResource Person ...

Person.all(:from => :remote_find_by_email, :params => {:email => "[email protected]") 

produit l'URL suivante

http://example.com/people/remote_find_by_email.xml?email=john%40example.com

Sinon, est-il quelque chose que l'application à distance devrait faire pour décoder le paramètre avant d'effectuer la recherche?

MISE À JOUR

Merci à eks, j'ai ajouté la méthode suivante et avant filtre au contrôleur sur l'application à distance:

before_filter :cgi_unescape_params, :only => [:remote_find_by_email] 

private 

    def cgi_unescape_params 
    params.each { |k, v| params[k] = CGI.unescape(v) } 
    end 

Répondre

1

Essayez d'utiliser CGI :: unescape à l'extrémité éloignée, que devrait prendre soin de toute valeur codée en%. À votre santé!

+0

Merci pour cela! –