Проблема с получением Ruby on Rails для работы на уровне пользовательского интерфейса - PullRequest
0 голосов
/ 11 мая 2011

Я следую этому уроку http://guides.rubyonrails.org/layouts_and_rendering.html и пытаюсь отделить div заголовка от остальных шаблонов HTML.

Я извлек div из моего приложения / views / home / indexФайл .html.erb и заменил его на

<%= yield :head %>

Затем я создал файл head.html.erb в каталоге / app / views / layouts и поместил туда этот div.Затем я поместил этот код вокруг div:

<% content_for :head do %>
<% end %>

Но он не работает и div заголовка не отображается.Где я неправ?Я думаю, что есть несоответствие пути и каталога, но я точно не знаю, как их сопоставить.

Спасибо!

Ответы [ 2 ]

3 голосов
/ 11 мая 2011

Ваш макет - это то место, куда вы положили вызов yield, а шаблон каждого представления - то, куда вы положили блок content_for.Вы, вероятно, захотите, чтобы ваш вызов yield был в основном файле макета вашего приложения.

Так что в app/views/layouts/application.html.erb поместите его так, как вы хотите:

<div id="my_header_div">
  <%= yield :head %>
</div>

Затем в каждом представлении, вы можете сделать это:

<% content_for :head do %>
  <h1>My Header!</h1>
<% end %>

И он будет вставлен в div в вашем файле макета.

1 голос
/ 11 мая 2011

Вы должны поставить это:

<%= yield :head %>

в вашем файле макета

Если ваш head макет не является макетом для вашего конкретного действия content_for :head никогда не будет работать

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