2011-08-02 5 views
3

내가 레이아웃 (application.html)가 표시되지 않는이 : 나는 (A '루트'템플릿에이 코드를 넣으면레일은 3 부분 content_for은 가지고 그

<!-- then anything added in the views --> 
<%= yield :stylesheet %> 

즉 작용에 의해 호출 한 직접) 페이지에서 아무런 문제도 렌더링하지 않습니다.

<% content_for :stylesheet do %> 
This is a test 
<% end %> 

그러나 부분적으로 같은 것을 넣으면 렌더링되지 않습니다. 부분은 같은 렌더링 :

<%= render :partial => "detail" %> 

답변

4

관련 코드의 나머지 부분을 보지 않고는 확실히 알고 어렵다하지만 그것은 순서 문제가 될 수 있습니다.

높은 수준에서 볼 때 페이지가 렌더링 될 때 먼저 (레이아웃 이전에)보기가로드되고 content_for가있는보기의 부분은 올바르게 작동해야합니다. 그러나이 부분이 뷰 템플릿 대신 레이아웃에서 렌더링되면 content_for가 무시되어 "yield : stylesheet"다음에 호출 될 가능성이 있습니다.

+0

흠. 아니오, 부분이보기에 있습니다. 하지만 그것은 조건부로 포함되어 있습니다 ... 어쩌면 그 일을하고있는 것일 수도 있습니다. – phil

+0

알겠습니다. 그렇다면 제대로 작동해야합니다. 조건부 논리에서 logger.debug를 수행하여 내부로 들어가는 지 확인합니다. 그 외에도, 나에게 어떤 일이 일어나고 있는지 명확하지 않습니다. 우리는 픽셀 드롭을 위해 많은 블록을 위해 조건부 content_를 사용합니다. – chrishomer

+0

거의 빈 프로젝트에서 코드 나 재생산을 볼 수있는 방법은 없습니까? 덕분에 – chrishomer

0

음, 부분이 올바른 디렉토리에 있는지 확인하십시오.

나는 똑같은 일을하고있어 아무런 문제가 없습니다. 내 home/_detail.html.erb (즉, 홈 디렉토리에 있음) 내 index.html.erb 페이지에 동일한 코드를 넣었으므로 문제가 없습니다. 철자가 파일 이름을 쓰고 파일을 저장했는지 확인하십시오.

정확하게 내용의 철자를 틀 었는지, 틀린 태그가 없는지 확인하십시오. 당신의 검사는 무엇을 말합니까?

또한 헤드 섹션에있는 경우 일반 텍스트 대신 주석 태그를 추가하면 어떨까요?

+0

. 부분의 나머지 부분은 렌더링이되고 content_for 부분은 렌더링되지 않습니다. – phil