2011-02-03 11 views
15

En mi función de controlador de destruir, me gustaría volver a dirigir al índice después de que el elemento se borre, y me gustaría pasar una variable llamada 'marcado' cuando redirección:cómo pasar una variable con 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 

cómo pasar este 'controlada' variable con cars_path para que en mi función de índice pueda obtenerlo ?? (cars_path llama índice función)

def index 
checked = params[checked] 
end 
+0

Tome un vistazo a esto: http://stackoverflow.com/questions/1430247/passing-parameters-in-rails-redirect -a – kafuchau

Respuesta

46

Si no te importa los parametros que se mostrarán en la url, usted podría:

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

Si realmente importa, usted podría pasar por variable de sesión:

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