2010-08-17 119 views
0

我只有基於ajax調用的應用程序,但我需要不斷檢查會話變量中的遞減值。我創建了一個帶有redirect_to :action => :action_name的before_filter,由於某些原因,這對我不起作用,我在日誌Filter chain halted as [:method_name] rendered_or_redirected.中看到,但實際上並沒有任何反應。它不處理Ajax請求:(before_filter in Rails和ajax請求

的代碼非常簡單(這是一個遊戲其實) 這裏是它掛在的before_filter

def check_winner 
    if session[:game].user.cards.length == 0 || session[:game].pc.cards.length == 0 
    flash[:notice] = "The end" 

    redirect_to :action => "win" 
    end  
end 

會話的方法[:遊戲]保持我在初始化幾個對象遊戲開始之前我從來沒有使用ajax的rails過濾器,但它始終與正常的http請求一起工作 用戶觸發動作通過link_to_remote無處不在我tryed呈現在濾波法AJAX頁面更新,但它只是拋出錯誤:(

+0

你能看到before_filter代碼嗎? – shingara 2010-08-17 21:24:35

+0

'redirect_to'實際上給了瀏覽器一個重定向(302),這可能不是你想要的。你需要更具體地瞭解你想要做什麼。也請張貼代碼。我們將需要幾乎所有相關的代碼。 – rfunduk 2010-08-17 21:26:25

回答

0

要在before_filter,來重定向我不認爲你用的是我的渲染多布爾重定向到AJAX特定的操作?更好的選擇是使用responds_to塊來響應特定的請求,或者只需要調用一個特定於Ajax的url。