225 votes

Comment transformer un hachage de Ruby en HTTP Params

C’est assez facile avec un hachage plain comme

qui se traduirait par

mais que voulez-vous faire avec quelque chose de plus complexe comme

qui devrait se traduire dans

ou pire encore, avec quelque chose comme :

Merci pour l’aide très appréciée avec ça !

306voto

Pour les hachages de base, non imbriquées, Rails/ActiveSupport a objet #to_query.

http://API.RubyOnRails.org/classes/Object.html#Method-i-to_query

170voto

bjeanes Points 2835

Si vous utilisez Ruby 1.9.2 ou version ultérieure, vous pouvez utiliser `` si vous n’avez pas besoin de baies.

Par exemple (à partir de la documentation Ruby en la 1.9.3) :

Vous remarquerez que les valeurs du tableau ne figurent pas avec les noms clés contenant comme nous sommes tous devenus habitués dans les chaînes de requête. La spécification qui utilisations est conforme à la définition d’HTML5 de `` données.

93voto

lmanners Points 955

Il existe un moyen beaucoup plus facile de le faire si vous utilisez des Rails : http://apidock.com/rails/ActiveSupport/CoreExtensions/Hash/to_query

Si vous pourriez faire :

89voto

Bob Aman Points 19110

Julien, votre réponse automatique est un bon et j’ai sans vergogne empruntée, mais il n’est pas correctement échapper des caractères réservés, et il y a quelques autres cas où il tombe en panne.

Le bijou est «adressable»

68voto

iain Points 6208

Aucun besoin de charger vers le haut le ActiveSupport ballonné ou rouler votre propre, vous pouvez utiliser et . D’ici est un blog qui donne un bon exemple :

Il gère même les tableaux :

Ou les trucs plus difficile imbriquées :

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X