호출 된 뷰로 돌아 오는 여러 뷰에서 동일한 부분
-
19-08-2019 - |
문제
나는 현재 두 가지 다른 관점에서 부분을 재사용하고 있습니다.
보기 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
양식 변수를 전환하는 것은 매우 쉽지만 세션을 위조하는 것은 더 어려울 수 있지만 불가능하지는 않습니다. 내 신청서라면이 길을 갈 것입니다.
제휴하지 않습니다 StackOverflow