2017-03-15 3 views
0

Im Moment habe ich eine Schleife, die Code enthält, den ich nicht für jede Instanzvariable wiederholen möchte. Ich möchte dies in eine partielle einfügen und wiederverwenden, indem Sie die @ new_posts Instanzvariable ändern, so dass ich die gleiche Vorlage für @featured_posts und @ recommended_posts verwenden kann, die ich definiert habe.Wie übergibt man eine Instanzvariable in eine partielle Ansicht?

Ich denke an so etwas wie diese:

<%= render "posts", posts: @featured_posts %> 

Ein Beispiel für eine Schleife, die ich wünschte,

in ein teilweise speichern
<% @new_posts.each do |post| %> 
<div class="col-sm-4"> 
<div class="thumbnail"> 
<img src="#"> 
<div class="caption"> 
    <h4><%= link_to post.title, post %></h4> 
    <%= post.text.truncate_words(60, omission: '...') %> 
    <a href="#" class="btn btn-default btn-xs" role="button">Button</a> 
    </div> 
    </div> 
</div> 
<% end %> 

Wie soll ich diesen Ansatz? Danke für Ihre Hilfe!

Antwort

1

zuordnen, was Variable Sie wollen posts

<%= render "posts", posts: @featured_posts %> 

Und jetzt Schleife über posts im Teil. Sie werden @featured_posts in posts Variable haben jetzt

<% posts.each do |post| %> 
    <div class="col-sm-4"> 
    <div class="thumbnail"> 
     <img src="#"> 
     <div class="caption"> 
     <h4><%= link_to post.title, post %></h4> 
     <%= post.text.truncate_words(60, omission: '...') %> 
     <a href="#" class="btn btn-default btn-xs" role="button">Button</a> 
     </div> 
    </div> 
    </div> 
<% end %> 

Für @recommended_posts den gleichen Teil machen aber @recommended_posts zu posts

<%= render "posts", posts: @recommended_posts %> 
+0

Works, vielen Dank für diesen passieren! – Joshua

Verwandte Themen