Как я могу использовать content_for, чтобы положить что-то в: yield - PullRequest
0 голосов
/ 21 октября 2010

Я в ruby ​​1.9.2, rails3.

Итак, у моего сайта есть некоторые структуры,

, и я хочу поместить меню в середину моей страницы.* Я делаю что-то вроде (в файле application.html.erb)

blahblahblah
<div id="menu">
   <%= yield :menu %>
<div>
blahblhablah

У меня есть файл menu.html.erb, который имеет структуру меню для сайта.Что я могу сделать, если я хочу использовать файл в папке ./layout, который будет использоваться как часть меню yield: menu?Мне было интересно, если я должен использовать content_for для каждого контроллера, и в каждой функции ... Кстати, menu.html.erb будет отличаться для каждого контроллера, поэтому я даю его.

ВВ заключение, я просто хочу включить один общий общий файл menu.html.erb почти везде.

Ответы [ 2 ]

5 голосов
/ 21 октября 2010

Вы можете сделать что-то подобное в своих представлениях:

<% content_for(:menu) do %>
  <%= render :partial => "/layouts/user_menu.html.erb" %> 
<% end %>

Вы можете попробовать объединить это с controller.controller_name (не уверен, что это работает для Rails3) и автоматически загрузить другое меню для каждого контроллера.

1 голос
/ 21 октября 2010

Вы могли бы рассмотреть просмотр Railscast на макетах, это сжато и полезно.Номера 7 и 8.

http://railscasts.com/episodes?search=layout

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