È possibile reindirizzare all'URL di riferimento con un nuovo parametro nella stringa di query?rails 4 reindirizzamento con nuovi parametri
qualcosa di simile:
redirect_to :back, custom_param='foo'
È possibile reindirizzare all'URL di riferimento con un nuovo parametro nella stringa di query?rails 4 reindirizzamento con nuovi parametri
qualcosa di simile:
redirect_to :back, custom_param='foo'
si può mettere in sessione e quindi reindirizzare indietro
session[:somekey] = value
redirect_to :back
perché dovrebbe funzionare ?? – user1066183
Quando si utilizza la sessione, i valori nella sessione rimangono lì tra le richieste. – techvineet
sì, ma ho bisogno di mettere i parametri nel link, ho bisogno di alcuni come questo: http: // localhost: 3000 /? Locale = 'pt' – user1066183
Prova questo:
# get a URI object for referring url
referrer_url = URI.parse(request.referrer) rescue URI.parse(some_default_url)
# need to have a default in case referrer is not given
# append the query string to the referrer url
referrer_url.query = Rack::Utils.parse_nested_query(referrer_url.query).
# referrer_url.query returns the existing query string => "f=b"
# Rack::Utils.parse_nested_query converts query string to hash => {f: "b"}
merge({cp: 'foo'}).
# merge appends or overwrites the new parameter => {f: "b", cp: :foo'}
to_query
# to_query converts hash back to query string => "f=b&cp=foo"
# redirect to the referrer url with the modified query string
redirect_to referrer_url.to_s
# to_s converts the URI object to url string
Un gotcha qui. 'Rack :: Utils.parse_nested_query (referrer_url.query)' restituisce un hash con chiavi stringificate. Quindi se il tuo 'referrer_url' ha' cp = bar' come sua stringa di query corrente. La query dell'URL sarà: 'cp = bar & cp = foo'. Modificare 'Rack :: Utils.parse_nested_query (referrer_url.query)' in 'Rack :: Utils.parse_nested_query (referrer_url.query) .symbolize_keys' o' Rack :: Utils.parse_nested_query (referrer_url.query) .stringify_keys' secondo necessità – DickieBoy
Un altro approccio potrebbe essere quello di passare attraverso "flash" (scompare automaticamente dopo la richiesta di reindirizzamento):
Tuttavia, come notato da uno dei miei colleghi, un modo migliore è probabilmente di restituirlo come parametro di query, per mantenerlo stateless e distinguere i due URL. Sembra che non ci sia un bel modo Rails integrato per farlo, il che mi fa chiedere che cos'altro ha torto in questo approccio.
quando si dice ': indietro' si intende indietro da dove l'utente proviene o un'azione denominata' back? ' – tihom
il primo ==>: indietro – user1066183
modificato la domanda per rendere il significato più chiaro. – tihom