2013-10-17 3 views
3

내가 본 가장 이상한 것들. 컨트롤러에서 조건부를 포함하여 redirect_to가 금지 된 후에?

, 나는 다른 웹 사이트로 사용자를 보낼 리디렉션하려고 :

redirect_to "http://google.com" --> This works. 

을하지만, 나는이 할 경우 :

if @model.true_boolean 
    redirect_to "http://google.com" --> this now gives me a Completed 403 Forbidden 
else 
    redirect_to root_path 
end 

을하지만이 작동합니다

if true 
    redirect_to "http://google.com" --> this is ok now 
else 
    redirect_to root_path 
end 

리디렉션에 도달하면 분명히 부울이 참이지만 "무언가"가 변경되고 있습니다 ...

if 문을 추가하면 어떻게 변경 될 수 있습니까? 요청 데이터를 살펴 봤는데 모두 일치하는 것 같습니다. 나는 여기와 다른 곳에서 시간을 보냈다. 우리의 친애하는 ROR의 창자와의이 초조 한 조우에 대한 어떤 응시자.

+0

모델이 뭔가요? 그것은 당신의 문제입니다, 당신이 그것을 참조하지 않을 때마다, 당신의 리디렉션은 잘 작동합니다. – Derek

+0

내 모델은 등록 용이며 부울은 true 또는 false 플래그입니다. 그러나 리디렉션으로 넘어가더라도 사실이라는 것과 리다이렉션을 렌더링해야한다는 사실에 동의 할 것입니다. 어딘가에서 마법이 발생합니다. 리디렉션 결과는 허용 된 모델 검사의 영향을 어떻게 받습니까? 어떻게 든 트랜잭션에 인공물을 추가하는 것과 같습니까? 아니면 정말 멍청한 것 같아. – mindstems

+2

내가 확실히 말할 수는 없지만 (공개적으로 액세스 할 수있는 페이지가없는 한 어디에서 이런 일이 발생하는지 볼 수는 없습니다.) 모델에 액세스하려고하면 리디렉션 명령이 아닌 403이 트리거됩니다. 그러나 Ruby on Rails에 익숙하지 않아 완전히 틀릴 수 있습니다. – Derek

답변

5

언급 한 바와 같이. 내 ROR4 앱에서 Turbo Links를 제거하고 자신의 발을 넘어서지 못하게했습니다. Derek에게 코드를 다르게 보도록 안내 해주신 것에 대해 감사드립니다.

+3

현재 버튼에 대해서만 터보 링크를 비활성화 할 수 있습니다. 링크 데이터에 추가함으로써 : { 'no-turbolink'=> true} – yozzz

1

터보 링크 요청을 다른 도메인으로 리디렉션하면 터보 링크가 씬 뒤에 403 응답 코드를 추가합니다.

나는 더 많은 통찰력을주기 위해 그것에 대해 짧은 post를 썼다. 희망이 도움이됩니다.