render :partial的用法

Partial是程式码的一小段,可以将重复使用的程式码切成独立的partial,让views中的html.erb中的code看着更清晰。 用法类似于中级作业里面的共用表单。 比如建一个_resumes.html.erb里面写下面这些代码

<div class="panel panel-default">
  <div class="panel-heading">
    <div class="row">
      <div class="col-md-12">
        <h3 class='panel-title'>
          <%= resume.user.email %>
        </h3>
      </div>
    </div>
  </div>

在index.html.erb里面加入<%= render "resumes" %>,然后这段partial就被index.html.erb引用了.

_topic_list.html.erb

<ul>
    <% @topics.each do |topic| %>
    <li>#
        <%= topic.id %></li>
    <li>Topic Name:<%= link_to(topic.title, topic_path(topic)) %></li>
    <li>Description:<%= topic.content %></li>
</ul>

<%= render “topic_list” %>

我们可以用collection partial的方法对上面的进行改写 collection partial会自动count我们给予的object,并render count的次数,可以省去在partial内在写block或helper的繁琐。 上面的可以写成这个样子

    <li>#<%= topic.id %></li>
    <li>Topic Name:<%= link_to(topic.title, topic_path(topic)) %></li>
    <li>Description:<%= topic.content %></li>

<%= render :partial => “topic_list”, :collection => @topics, :as => :topic %>