Rails рендеринг content_for не работает для частичных - PullRequest
2 голосов
/ 21 июня 2011

Я использую приложение Rails 2.3.8.У меня есть файл макета, который содержит<%= yield :head %>

Я вызывал следующий код в разных частях моего приложения:<% content_for :head do %><meta name="keywords" content="" /><% end %>

Я пытался добавить этот код в файл вида home, это сработало.Я назвал его из патиала _abc, который вызывается из home, он также работал как ожидалось, добавив код meta в часть head.Но когда я добавил код внутри частичного _def, который вызывается из _abc, который вызывается из home, тег meta не появился !!!

Я не понял, что происходит... и как можно обойти эту проблему

ОБНОВЛЕНИЕ: случай, который не работал, был:

home.html.erb:<%= render :partial=>"_abc"%>

_abc.html.erb:<%= render :partial=>"_def"%>

_def.html.erb:<% content_for :head do %><meta name="keywords" content="" /><% end %>

Большое спасибо

1 Ответ

2 голосов
/ 16 апреля 2013

Это старый вопрос, но я попал сюда с похожей проблемой.Думаю, я опубликую свою проблему / решение в случае, если кто-то еще приземлится здесь.

В каком файле находится <% = yield: head%>?У меня была эта проблема, и оказалось, что мой выход был в файле "/layouts/application.html.erb" ... Но вызываемое представление использовало другой файл макета, т.е. "/layouts/listings.html.erb".как только я переместил yield в правильный файл, все работало нормально, и у меня была почти такая же настройка, как вы описали.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...