приносить содержание или доходность - PullRequest
3 голосов
/ 05 марта 2012

Я делаю следующее в своем шаблоне приложения:

<%= yield(:content) or yield %>

У меня есть шаблон вопросов, который вложен в шаблон приложения.Однако для моего индекса вопросов я просто хочу отобразить шаблон приложения, а не шаблон вопросов.

Таким образом, я переопределяю его следующим образом:

  format.html { render :layout => "application"} 

Это переопределяет шаблоннормально, что шаблон приложения отображается, а не шаблон вопроса.Тем не менее, не похоже, что оператор "or yield" работает;мой контент пустОн отлично работает, когда я изменяю шаблон приложения следующим образом:

<%= yield %>

Мне нужен исходный оператор, хотя я могу иметь вложенный шаблон.Я бы предпочел, чтобы не пришлось писать content_for для всего сайта, чтобы иметь вложенный шаблон.

Есть мысли?

Ответы [ 2 ]

2 голосов
/ 09 ноября 2012

Примерно так должно получиться:

Вместо

 <%= yield(:content) or yield %>

использование:

<%= content_for?(:content) ? yield(:content) : yield %>

Надеюсь, это поможет.

0 голосов
/ 09 ноября 2012

Не прямой ответ, но можете ли вы предоставить более подробную информацию о вашей настройке?Я не чувствую, что вы делаете это "правильно", то есть я не чувствую, что вам нужно yield(:content).Меня особенно интересует случай, когда вы на самом деле предоставляете content_for :content.Поскольку в этом случае вы не вызываете yield (без параметров), я не понимаю, почему вы просто не предоставляете контент для yield (без параметров) вместо yield(:content).

. Кроме того, дополнительнок другому ответу вы также можете попробовать (c = yield(:content)).present? ? c : yield на случай, если это решение не сработает.

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