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

Était-ce utile?

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
scroll top