2010-08-17 6 views
0

나는 ajax 호출에만 기반한 응용 프로그램을 가지고 있지만 세션 변수에서 감소하는 값을 지속적으로 확인해야합니다. 어떤 이유로 든 redirect_to :action => :action_name으로 before_filter를 만들었습니다. 로그에 나와있는 것처럼 보입니다. 실제로는 아무 일도 일어나지 않습니다. 문제가 무엇인지 아는 사람이 있습니까? 필터를 사용하여 DRY 코드를 만들고 싶었지만 [: 게임]이 아약스 요청 :(before_filter in Rails and ajax requests

코드는 (실제로 게임입니다) 여기

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 

세션 before_filter에 달려 방법의 아주 간단합니다 처리 아니에요 내가에서 초기화 여러 개체를 유지 게임의 시작. 아약스로 레일 필터를 사용한 적이 없지만 항상 정상적인 http 요청으로 작동했습니다. 사용자가 link_to_remote을 통해 모든 작업을 트리거합니다. 필터 메소드에서 Ajax 페이지 업데이트를 렌더링하려고 시도했지만 doble 렌더링 오류가 발생합니다. (

+0

before_filter 코드를 볼 수 있습니까? – shingara

+0

'redirect_to'는 실제로 브라우저에 리다이렉트 (302)를줍니다. 이것은 아마도 당신이 원하는 것이 아닙니다. 당신은 당신이하고자하는 일에 대해 더 구체적이어야합니다. 또한 게시물 코드를주십시오. 우리는 모든 관련 코드가 필요합니다. – rfunduk

답변

0

before_filter에서 리디렉션하려고 생각하지 않습니다. AJAX 관련 작업으로 리디렉션 하시겠습니까? 더 나은 대안은 responds_to 블록을 사용하여 특정 요청에 응답하거나 단순히 호출되는 Ajax 관련 URL을 갖는 것입니다.