2011-02-03 15 views
15

W mojej funkcji kontroler zniszczyć, chciałbym przekierować do indeksu po rzeczy usunięte, a chciałbym przekazać zmienną o nazwie „sprawdzone”, gdy przekierowanie:jak przekazać zmienną z redirect_to?

def destroy 
    @Car = Car.find(params[:id]) 
    checked = params[:checked] 

    if @car.delete != nil 

    end 

    redirect_to cars_path #I would like to pass "checked" with cars_path URL (call index) 
end 

jak przekazać tę „sprawdzone” zmienną z cars_path tak, że w mojej funkcji indeksu mogę go uzyskać? (cars_path wzywa Indeks funkcja)

def index 
checked = params[checked] 
end 
+0

Spójrz na to: http://stackoverflow.com/questions/1430247/passing-parameters-in-rails-redirect -do – kafuchau

Odpowiedz

46

Jeśli nie przeszkadza params być pokazany w adresie URL, można:

redirect_to cars_path(:checked => params[:checked]) 

Jeśli naprawdę przeszkadza, można przejść przez sesja zmienna:

def destroy 
    session[:tmp_checked] = params[:checked] 
    redirect_to cars_path 
end 

def index 
    checked = session[:tmp_checked] 
    session[:tmp_checked] = nil # THIS IS IMPORTANT. Without this, you still get the last checked value when the user come to the index action directly. 
end 
Powiązane problemy