Sorgu dizesinde yeni bir param ile yönlendiren URL'ye yeniden yönlendirmek mümkün mü? Böyleraylar 4 yeni params ile yeniden yönlendirme
şey:
redirect_to :back, custom_param='foo'
Sorgu dizesinde yeni bir param ile yönlendiren URL'ye yeniden yönlendirmek mümkün mü? Böyleraylar 4 yeni params ile yeniden yönlendirme
şey:
redirect_to :back, custom_param='foo'
Sen Deneyin oturumda koymak ve sonra geri
session[:somekey] = value
redirect_to :back
neden işe yarayacak ?? – user1066183
Oturum kullandığınızda, oturumdaki değerler isteklerin arasında kalır. – techvineet
evet ama ben paramizi linke koymam gerek, buna benzer: http: // localhost: 3000 /? Locale = 'pt' – user1066183
yönlendirebilirsiniz bu:
# 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
Burada bir tane var. 'Rack :: Utils.parse_nested_query (referrer_url.query)', dizili anahtarlarla bir karma döndürür. Yani 'referrer_url'unuz mevcut sorgu dizesi olarak' cp = bar' içeriyorsa. URL'nin sorgusu şu şekilde olacaktır: 'cp = bar & cp = foo'. Rack :: Utils.parse_nested_query (referrer_url.query) 'işlevini Rack :: Utils.parse_nested_query (referrer_url.query) .symbolize_keys.' veya" Rack :: Utils.parse_nested_query (referrer_url.query) .stringify_keys "olarak değiştirin. – DickieBoy
başka bir yaklaşım yoluyla geçmek olabilir "flash" (yönlendirme isteğinden sonra otomatik olarak gider):
Ancak, meslektaşlarımdan birinin belirttiği gibi, daha iyi bir yol muhtemelen bir sorgu paramisi olarak geri döndürmek, vatansız tutmak ve iki URL'yi ayırmaktır. Görünüşe göre güzel, yerleşik bir Rails yolu yok, bu da bana bu yaklaşımın neyin yanlış olduğunu merak ediyor.
"Geri" derken, kullanıcının nereden geldiğini veya geri döndüğü bir eylem mi demek istediniz? – tihom
ilk ==>: geri – user1066183
anlamı daha net yapmak için soruyu düzenlediniz. – tihom