그래서 두 개의 다른 탐색 헤더가있는 레일 애플리케이션이 있습니다. 한 페이지는 대다수 페이지에 사용되고 다른 탐색 헤더는 몇 페이지에만 사용됩니다. 또한 탐색이 application.html.erb 페이지 (응용 프로그램의 모든 페이지간에 공유 됨)에로드되기 때문에 탐색 HTML은 사용자가 페이지를 새로 고치지 않으면 서버에서 새로 고쳐지지 않습니다. 그리고 각 페이지가 ajax (pjax 사용)를 통해로드되기 때문에 다른 탐색 헤더가 필요한 두 페이지 사이를 이동할 때 탐색 헤더가 업데이트되지 않습니다.ajax 페이지에서 내비게이션을 업데이트하는 방법 load
나는 가능한 몇 가지 해결책이 있지만 나는 모든보기에 코드를 추가하고 싶지 않기 때문에 나는 그것을 좋아하지 않는다. 주요 솔루션은 탐색 헤더를보기 (global application.html.erb 대신)로 이동하거나 모든 페이지에 탐색을 올바른지 확인하고 대체하지 않을지 확인하는 javascript를 추가하는 것입니다. 하지만 그것을 대체하기 위해 부분적인 HTML을로드하는 방법을 모르며 모델의 데이터가 들어 있습니다.
참고 : 각 URL을 직접 방문하면 문제가 없습니다.
꽤 쉬운 문제인 것처럼 느껴지기 때문에 쉽게 접근 할 수 없지만 검색하는 동안 아무것도 찾을 수 없습니다.
편집 : 내가 적절한 부분으로 네비게이션을 교체 강행하려는 경우, 당신은 당신의 AJAX 응답에서 다음을 배치 할 수 있습니다 JQuery와
그것을 밖으로 시도 할 것이다. 나는 이미 네비게이션 변경이 필요할 때마다 실행할 추가적인 컨트롤러와 서버 생성 자바 스크립트로 솔루션을 개발하기 시작했다. 지금 이것을 시도 할 것입니다. –
몇 가지 빠른 프로토 타이핑 작업이 끝나면 뒤로 버튼을 눌렀을 때 javascript가 실행되도록하려면 뭔가를해야하지만 pjax 이벤트를 청취해야 할 수도 있습니다. 도와 주셔서 감사합니다! –