2010-04-07 59 views
0

HY,滑轨:DRY在视图

我在视图/布局,其具有2个COLS,然后在每一个视图我有content_for的布局:main_col和content_for:side_col。问题是,我有在content_for相同的内容超过5次: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

是的,这是一个好主意! 使用部分 中的content_for非常感谢! – 2010-04-07 21:16:19

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生成 – 2011-08-24 19:01:27