2010-04-07 6 views
0

Hy,Rails: DRY dans les vues

J'ai une mise en page dans les vues/mise en page qui a 2 Col. puis à chaque point de vue j'ai content_for: main_col et content_for: side_col. Le problème est que j'ai plus de 5 vues avec le même contenu dans le content_for:? Side_col

Vous avez une meilleure idée sur la façon de le faire grâce

Répondre

5

le mettre dans une partielle et rendre la partie où vous besoin de ça.

app/vues/shared/_sidebar.html.erb

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

app/views/somewhere/else.html.erb

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

Oui, c'est une bonne idée! en utilisant le content_for dans le partiel merci beaucoup! –

0

Si vous avez besoin passer des variables à vos partiels (ce que je suppose que vous faites), utilisez un assistant c'est une façon très soignée de sécher votre code:

# 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

merci mais maintenant mes pages sont entièrement générées par javascript –

Questions connexes