2013-02-20 3 views
0

Добрый день,Рельсы: папка с шаблонами

Я пробовал некоторые основы рельсов.

Я хочу создать один шаблон и использовать его в своем файле макета.

Я создал этот файл: Views/шаблон/sidebar.html.erb

<% content_for (:sidebar) do %> 

<ul> 
    <li>TEST</li> 
    <li>TEST</li> 
</ul> 
<% end %> 

И мой файл макета: просмотры/макеты/test.html.erb

<%= yield :sidebar %> 

Он появляется: Шаблон отсутствует

Что не так?

+1

Означает ли это также сообщение об ошибке, когда у вас нет «урока: боковая панель» в макете? Возможно, он не нашел шаблон для действия. Каков путь к файлу для шаблона, где он выглядит? Это файл, который он ожидает. –

+0

ah okay мой звонок был неправильным: макет «user_interface_trainerone». – ubuseral

+0

теперь показано, но не показывает боковую панель. – ubuseral

ответ

1

Содержание должно быть в представлении, которое включено. Вы можете поместить его в представление для действия. В качестве альтернативы (возможно, что вы хотите сделать) вы можете

<%= render :partial => "template/sidebar" %> 

с точки зрения вашего действия. Вам придется переименовать файл из sidebar.html.erb в _sidebar.html.erb.

+0

ok, но в книге они объясняют создание шаблона с помощью content_for, а затем вы должны включить его с помощью <% = yield: sidebar%> в макете – ubuseral

+0

, как здесь, пункт 3.2 http://guides.rubyonrails.org/layouts_and_rendering. html # understand-yield – ubuseral

+0

@ddd вы должны называть «yield: sidebar», чтобы получить отметку в шаблоне, связанную с символом: sidebar. Вызов «content_for: sidebar» сделает ассоциацию символа: боковая панель с меткой вверх в блоке. Однако вам нужно запустить код для «content_for: sidebar», который так, как вы его никогда не вызывали. Вам нужно поместить вызов content_for в представление (также называемое шаблоном), которое вызывается для действия. Он не будет автоматически найти его в каталоге views/template. –

Смежные вопросы