2010-04-07 5 views
0

Hy,Rails: DRY в представлениях

У меня есть макет в Views/макет, который имеет 2 COLS, а затем в каждом виде у меня есть content_for: main_col и content_for: side_col. Проблема заключается в том, что у меня есть более 5 представления с тем же содержанием в content_for: side_col

У вас есть лучшее представление о том, как сделать это благодаря

ответ

5

положить его в частичное и делают парциальное где вы нужно это.

приложение/просмотров/общий/_sidebar.html.erb

<% content_for :sidebar do %> 
    Hello, I am your neighbourhood friendly sidebar! 
<% end %> 

приложение/просмотров/где/else.html.erb

<%= render :partial => "shared/sidebar" %> 
+0

Да, это отличная идея! используя содержание_for в частичном большое спасибо! –

0

Если вам нужно передать переменные ваши частичные (то, что я думаю, вы делаете), используйте помощника, это очень аккуратный способ СУХОЙ код:

# app/views/shared/_side_col.html.erb 
<% content_for :side_col do %> 
    <ul> 
    <% menu_items.each do |item| %> 
     <li><%= item %></li> 
    <% end %> 
    </ul> 
<% end %> 

# app/helpers/application_helper.rb 
def side_col(menu_items) 
    render 'shared/_side_col', :menu_items => menu_items 
end 

# app/views/your/view.html.erb 
<%= side_col your_menu_items_for_this_view %> 
+0

спасибо, но теперь я мои страницы полностью сгенерированы javascript –