Comment utiliser params avec des barres obliques avec Sinatra?
-
22-08-2019 - |
Question
Jouer avec sinatra, je suis coincé sur un petit problème: quand je l'utilise params avec des barres obliques, il embrouille le moteur de routeur. Donc, il y a une belle façon de gérer ce genre de param sans avoir à coder?
Le code ressemble
get 'add/:url' do
#....
end
Et je compte obtenir quelque chose comme / ajouter / http://sctackoverflow.com/ travail
La solution
Avez-vous essayé d'utiliser des paramètres de floc?
Quelque chose comme:
get '/add/*' do
protocol = params[:splat].first
address = params[:splat][1..-1].join('/')
url = protocol + "//" + address
end
Autres conseils
merci, je ne l'ai pas entendu parler de paramètres de floc et il fonctionne parfaitement pour ce cas. En effet, je l'ai regardé dans la documentation et je trouve encore plus court en utilisant des paramètres de capture et des expressions régulières:
get %r{/add/(.+)} do
url = params[:captures]
end
ou de l'utilisation:
url = request.fullpath[5..-1]
Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow