如何将实例变量传递给视图部分?

时间:2017-03-15 03:32:25

标签: ruby-on-rails

现在我有一个包含我不希望为每个实例变量重复的代码的循环。我希望将其部分放入并通过更改 @new_posts 实例变量来重复使用它,因此我可以为我定义的@featured_posts和@recommended_posts使用相同的模板。

我想到这样的事情:

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

我希望存储在部分

中的循环示例
<% @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 %>

我该如何处理?谢谢你的帮助!

1 个答案:

答案 0 :(得分:1)

将您想要的任何变量分配到posts

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

现在循环部分中的posts。您现在@featured_posts变量中有posts

<% 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 %>

对于@recommended_posts呈现相同的部分,但将@recommended_posts传递给posts

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