문제

나는 현재 두 가지 다른 관점에서 부분을 재사용하고 있습니다.

보기 a

보기 b

부분은 모델 A에 속하지만 모델 B와 연관되어 있으므로 모델 B에도 적용 할 수 있습니다.

여기에는 양식이 포함되어 있으며 데이터가 제출되면 항상 사용자에게 A View A를 리디렉션합니다. 그러나 View B에서 양식을 제출할 때 양식 A 대신 view B로 다시 리디렉션되고 싶습니다.

지금 바로 a보기를 리디렉션하는 이유는이 형식이 속한 모델이기 때문입니다. 따라서 게시되면 컨트롤러 A와 대화하고 리디렉션을 사용하여 사용자를 A_URL로 가져갑니다.

사용자를 그들이 어디에서 왔는지 다시 리디렉션하도록 내 양식 (또는 더 많은 컨트롤러 조치)을 알려주려면 어떻게해야합니까?

감사!

도움이 되었습니까?

해결책

해결되었습니다.

부분이 렌더링 된 위치의 컨트롤러 이름이 포함 된 내 양식에 숨겨진 필드를 추가 한 다음 response_to 블록이 사용자를 보낼 곳을 결정했습니다.

코드보기 :

<%= hidden_field_tag 'submitted_from', "#{controller.controller_name}" %>

내 컨트롤러 코드 :

if params[:submitted_from] == 'A'
  redirect_to a_url
else
  redirect_to b_url
end

다른 팁

숨겨진 태그를 사용하는 대신 세션에 배치 할 수 있습니다.

session[:submitted_from] = new_model_url

그리고 다른 행동에서 ..

redirect_to(session[:submitted_from])
session[:submitted_from] = nil

양식 변수를 전환하는 것은 매우 쉽지만 세션을 위조하는 것은 더 어려울 수 있지만 불가능하지는 않습니다. 내 신청서라면이 길을 갈 것입니다.

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top