2009-09-06 4 views
0

내 Rails 컨트롤러에서 다른 컨트롤러의 작업으로 분기하고 뷰를 표시 한 다음 원래 작업 (예 : 하위 리디렉션 호출과 같은 간단한 리디렉션이 아닌)으로 돌아가고 싶습니다.다른 컨트롤러의 동작에 임시로 분기하는 레일즈의 방법은 무엇입니까?

사용자가 게시물을 너무 자주 편집하는 것과 같은 의심스러운 일을 할 때마다이 기능을 사용하고 싶습니다. 나는 여전히 편집을 허용하고 싶지만, 먼저 사용자는 다른 페이지에서 CAPTCHA와 같은 질문에 답해야합니다. (Authlogic-oid와 유사합니다. 유효성 검사 도중 사용자가 OpenID 제공 업체의 페이지로 리디렉션됩니다.)

답변

2

당신은 현재를 밀어 수 있습니다 (헬퍼, 모듈 등을 조사) 요청을 세션에 입력 한 다음 보안 문자로 리디렉션 한 다음 세션으로 이동하여 보안 문자가있는 위치를 확인합니다.

IIRC, Autlogic은 정확히 redirect_back_or_default을 사용합니다.

0

수 없습니다.

공통 항목을 도우미 메서드로 변환 한 다음 두 컨트롤러가 모두이 메서드를 호출해야합니다.

+0

Authlogic-oid 란 무엇입니까? 유효성 검사 도중 OpenID 제공 업체의 페이지로 리디렉션 된 다음 반환됩니다. (적어도 그것은 그렇게 보입니다. 내부는 다르게 작동 할 수도 있습니다) –

+0

Authlogic-oid는 모듈을 사용합니다. 모듈은 클래스와 같고 인스턴스 만 가지고 있지 않습니다. 해당 기능을 사용하려면 클래스와 컨트롤러 (컨트롤러 등)를 혼합하십시오. 많은 보석이 그들을 사용합니다. – Jarrod

+0

내 경우에는 "공통점"은 무엇입니까? –

0

그것은 그것의 다른 컨트롤러와 호출 방법의 인스턴스를 만들 수 있습니다,하지만 당신은 아마 먼저 조직을 재평가해야

@my_other_controller = MyOtherController.new 

@my_other_controller.some_method(params[:id]) 
관련 문제