2012-06-25 2 views
0

난 제어기 사용 caches_actioncontent_for 제작 중이지만 제작 중이 아니십니까?

controllers/bar_controller.rb:

caches_action :bar, :layout => false 

이이 액션의 관점에서 I'ill 레이아웃에 HTML 제목 설정.

views/foo/bar.html.erb:

<%= content_for :mytitle do "testing" end %> 

이 내 레이아웃 파일입니다 개발에

views/layouts/application.html.erb:

<title><%= yield :mytitle %></title> 

그러나,이 경우에만 작동합니다. 프로덕션에서는 작동하지 않습니다. 어떤 생각이라도 감사합니다. 감사.

비슷한 질문 : Is there a workaround for ignored content_for blocks with caches_action and :layout => false?

+0

캐싱이 개발 중입니다. 프로덕션 환경에서 캐시 할 때 레이아웃을 무시하고 그 내용을 통해 'content_for'에서 렌더링 할 내용을 지정합니다. – numbers1311407

+0

은 content_for가 캐시에서 무시됩니까? –

+1

레이아웃에서 content_for를 만들고': layout => false'를 전달하면 그렇게 보입니다. [docs] (http://api.rubyonrails.org/classes/ActionController/Caching/Actions.html)에서 : "pass : layout => false이면 액션 콘텐츠 만 캐시됩니다. 레이아웃이 유용 할 때 유용합니다. 동적 인 정보를 가지고 있습니다. " – numbers1311407

답변

0

레일은 단순히 캐시 사용 가능 환경에서 content_for 블록을 무시합니다. 값을 계산하고 그 값을 인스턴스 변수에 저장하려면 ActionController::Filters을 사용하십시오. 레이아웃에서 인스턴스 변수를 참조하십시오.