2014-07-15 3 views
1

처음에는 터보 링크를 사용합니다. 전반적으로 기쁩니다. 그러나 한 가지 문제가 있습니다. 데이터가 변경 될 때 다시로드되지 않는 애플리케이션 레이아웃 (간단한 헤더 코드, 로그인 한 경우 정보 표시, 그렇지 않으면 로그인 양식)에 코드가 있습니다.터보 링크 및 응용 프로그램 레이아웃의 코드

이것은 내 응용 프로그램 레이아웃에서 볼 수있는 것과 같으므로 이해가됩니다. 터보 링크는이를 실행하지 않아야합니다.

그러나 turbolinks를 트리거하여 페이지의 해당 부분을 재생성하는 쉬운 방법이 있습니까? <head> 그대로 떠나 -

+1

Turbolinks는 push-state를 사용하여 html 문서의 전체 본문을 바꿔 헤더가 올바르게 relode되어야합니다. application.html.erb 파일을 게시 할 수 있습니까? – Monideep

답변

1

Turbolinks

당신이 Turbolinks으로 찾을 큰 문제는 단지 페이지의 <body>를 업데이트하는 방법입니다.

즉, HTML 레이아웃의 <head>에 로직이있는 경우 동일한 <head> 영역이있는 페이지를로드하는 경우 변경되지 않습니다.

-

설정

난 그냥 페이지의 <body>에 논리를 넣어하는 것입니다 사용하는 솔루션입니다. 우리는 다음을 사용합니다 :

#app/views/layouts/application.html.erb 
<body> 
    <% if user_signed_in? %> 
     ... 
    <% else %> 
     ... 
    <% end %> 

이것은 모두 터보 링크를 사용하여 우리가해온 모든 응용 프로그램에서 효과가 있습니다.

+1

그건 내가하고있는 일과 거의 같다. 내가 말하는 "머리말"은 전적으로 몸 안에있다. 그러나 데이터가 바뀌면 내 응용 프로그램 레이아웃에서 물건을 다시 렌더링하지 않는다. 그것이 당신을 위해 일하는 경우에, 그때 나는 틀린 무언가를 어딘가에 틀림없이하고 있어야하고 어쩌면 이것은 빨간 청어이다. 나는 더 깊은 것을 파헤 칠 것이다 - 고마워. –

+0

질문에 전체 응용 프로그램 레이아웃을 게시 할 수 있습니까? 당신이'devise'를 사용하고 있는지 아닌지를 보는 것은 흥미로울 것입니다 –

+1

저는 확실히 devise를 사용하지 않습니다. 나는 자국산 인증을 사용하고 있습니다. 어떤 문제 일 수 있습니다. 나는 먼저 그것을 파헤쳐보고, 내가 곤란을 겪으면 나는 깨끗 해지고 공개적으로 볼 수있는 것을 게시 할 것이다. –

관련 문제