ho questo url:Rimuovi "?" da una stringa
http://localhost:3000/blog/posts?locale=en
ho un aiutante per rimuovere ?locale=en
di url:
def url_without_locale_params(url)
uri = URI url
params = Rack::Utils.parse_query uri.query
params.delete 'locale'
uri.query = params.to_param
uri.to_s
end
Con questo aiuto ho questa url http://localhost:3000/blog/posts?
. Vorrei eliminare il trailing ?
.
Il risultato dovrebbe essere http://localhost:3000/blog/posts
.
La parte dell'URL dopo il punto interrogativo è chiamata "stringa di query". –
La risposta corretta a questo è assegnare 'nil' a' params' come dice Mike Campbell. –
È facile capire perché si dovrebbe provare a utilizzare la manipolazione delle stringhe per massaggiare l'URL restituito, ma, quando si utilizza una classe progettata per gestire quella roba, è molto utile approfittare delle sue funzionalità. L'URI non è lo strumento URI migliore/più completo per Ruby. Guarda [Addressable :: URI] (https://github.com/sporkmonger/addressable) se vuoi qualcosa di più completo. –