2012-01-11 4 views
5

로그인 할 때 내보기에 content_for이 있고 세션 컨트롤러에 사용자가 유효한 자격 증명을 입력하지 않은 경우 render :new이 있습니다. 그러나, render :new 일 때, 나는 css 또는 js없이 흑백 페이지를 얻습니다. 이레일스 content_for가 실행되지 않습니까?

<% content_for :head do %> 
    <%= stylesheet_link_tag "user_sessions/new" %> 
    <%= javascript_include_tag 'user_sessions/new.onready' %> 
<% end %> 

처럼 내 content_for 모습이 작품은 내가 render을 수행 할 때 위의 코드가 실행됩니다 있는지 확인하기 위해 주변에 있는가 어떻게?

답변

9

제 생각 엔 당신은 content_for을 어디에도 넣지 않았을 것입니다. app/views/layouts/application.html.erb (또는 중 레이아웃이 페이지에 사용하고) 당신이 뭔가를 가지고 있는지 확인에서 다음 :

<head> 
    <!-- your regular head content goes here --> 
    <%= content_for :head %> 
</head> 

당신이 content_for에 블록을 통과, 블록의 내용이 사용하는 저장된다 다른 곳에서. 블록이없는 content_for을 호출하면 저장된 콘텐츠가 삽입됩니다.

자세한 내용은 the docs for content_for을 참조하십시오.

+0

RonaldOnRails 대답을 수락해야합니다. 에드 대답. – frandroid

+0

이 질문에 대한 답은 레일즈 3의 최신 버전이었습니다. –

3
<head><%= content_for :head %></head> 

나를 위해 작동하지 않았다 하지만

<head><%= yield :head %></head> 

내가이 그냥 기억

을 할 수있는 권리 추측 일 : 콘텐츠를 호출 yield:head을위한 매개 변수 content_for 렌더링 된 뷰에 넣으면 application.html 원하는 코드 조각을 넣을 수 있습니다.

+0

이것은 정확하게 의도 한대로 작동했습니다 ... 이상하게도 이전 버전의 레일즈에서 이런 식으로해야한다는 것을 기억하지 못합니다. 그것은 변경되었을 수 있습니다. 관계없이, 이것에 대한 감사합니다! – rcd

관련 문제