2011-02-03 18 views
15

Trong chức năng điều khiển phá hủy của tôi, tôi muốn chuyển hướng đến chỉ số sau khi mục bị xóa, và tôi muốn vượt qua một biến gọi là 'kiểm tra' khi chuyển hướng:cách chuyển một biến với 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 

làm thế nào để vượt qua điều này 'kiểm tra' biến với cars_path sao cho chức năng chỉ mục của tôi có thể nhận được ?? (cars_path gọi index chức năng)

def index 
checked = params[checked] 
end 
+0

Hãy xem xét điều này: http://stackoverflow.com/questions/1430247/passing-parameters-in-rails-redirect -đến – kafuchau

Trả lời

46

Nếu bạn không nhớ các params được hiển thị trong url, bạn có thể:

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

Nếu bạn thực sự quan tâm, bạn có thể vượt qua bởi biến phiê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 
Các vấn đề liên quan