레일 : 해당 "수율"내부의 "Content_for"사용
-
19-09-2019 - |
문제
나는 이것이 이전에 요청 된 것 같지만 Google을 검색했지만 솔루션을 생각해 내지 않았습니다.
이것이 제가 레일 2.3.5에서하려는 일입니다.
layouts/application.html.erb:
<html>
<head>
... some other stuff
<%= yield :head %>
</head>
<body>
<% content_for :head, "something that belongs in the head" %>
</body>
</html>
수율을 주목하십시오 ~ 전에 content_for.
기본적으로 Rails가 다음과 같은 내용을 허용하지 않는다는 것을 알고 있습니다. 헤드 정의 ~ 후에 수율이 사용되었습니다 - 의미가 있습니다.
나는 심지어 템플릿 렌더링 프로세스에 연결을 시도했지만 지금까지는 성공하지 못했습니다.
따라서 내 목표는 부분/템플릿 내부의 Content_를 정의 할 수 있고 응답이 브라우저로 전송되기 직전에 "수율"을 어떻게 든 지연되고 실행하는 것입니다.
누군가 해결책을 생각해 냈습니까?
인사와 감사합니다, 프랭크
업데이트나는 Weppos의 아이디어와 함께 가서 Rack Middleware에서 나 자신을 시험해 볼 것이다. 감사해요
해결책
렌더링 프로세스는 먼저 액션 템플릿을로드하고 실행 한 다음 선택한 레이아웃으로 템플릿을 장식합니다. 레이아웃은 상단에서 Botton으로 렌더링되므로 더 많은 콘텐츠를 추가 할 수 없습니다. :head
~ 후에 :head
이미 렌더링되었습니다.
전략을 바꿔야합니다. 조각을 부분적으로 배치하고 액션 뷰에 첨부하거나 랙 모듈/After_Filter와 같은 후 처리 전략을 사용하여 HTML 코드를 직접 변경하십시오.
아마 실제로 필요한 것을 바탕으로 더 나은 솔루션을 찾으려고 노력할 것입니다. 이 문제를 겪고 있다면 앱 아키텍처에서 오류가 다른 곳에있을 가능성이 있습니다.
다른 팁
당신의 동등한 사인이 없어야합니다 content_for
성명. 그것은해야한다:
<% content_for :head, "Something that belongs in the head" %>
템플릿과 부분 내에서 내용을 정의하면 작동해야합니다. 이 기술은 덮여있었습니다 RailScast 에피소드 8.