2016-04-05 15 views
0

2 tane görünüm var, hem bir düzenleme düğmesi var. Bu düğme, edit_view'a yeniden yönlendirir. Orada gönderirseniz, yönlendirme shoul, geldiğim manzaralara geri götürür. Ve bu parametrelerden birine URL ile girerek kimlik paramlarını geri iletin.Raylar - 2 görünümden 1 görünümüne geri dönüş ve get-params ile geri dön

Modeli:

localhost: 3000/sipariş/liste>/sipariş/edit_single_order> localhost: 3000/sipariş/liste id = 1

localhost: 3000/sipariş/idare >/sipariş/edit_single_order> /sipariş/

yönlendirmeyi yönetmek:

def redirect_to_back_or_default_params(default = root_url, *args) 
     if request.env['HTTP_REFERER'].present? && request.env['HTTP_REFERER'] != request.env['REQUEST_URI'] 
     redirect_to :back, *args 
     else 
     redirect_to default, *args 
     end 
    end 
Kontrolör-yönlendirme:

redirect_to_back_or_default_params administrate_order_path(:provider_id => @cart_item.product.provider.id) 
+1

mağaza oturumunda url ve başarılı güncellemeye bağlı oturumda url yönlendirme. –

cevap

0

Sorun çözüldü: Ben store_location ile params'ı geçti

Kontrolör/Görünüm:

store_location(params[:provider_id]) 

Store_location:

def store_location(args=nil) 
    #test to prevent Url's like order/administrate?id=  
    if args.nil? 
     session[:return_to] = "#{request.protocol}#{request.host_with_port}#{request.fullpath}"  
    else 
     session[:return_to] = "#{request.protocol}#{request.host_with_port}#{request.fullpath}?id=#{args}" 
    end 
    end 

Yönlendirme:

def redirect_back_or_default(default) 
     redirect_to(session[:return_to] || default) 
     session[:return_to] = nil 
    end