render :partial 局部渲染
<%= render :partial => '/shared/mails/list' %>
渲染/shared/mails/_list.html.erb到当前模板的当前位置,例如可以写一个list模板来渲染一组数据显示.
- 传递变量
<%= render :partial => '/shared/mails/list', :locals => { :mails => @mails, :can_edit => false } %>
:locals选项为partial设置所要传递的变量
每个partial都有一个和局部模板相同名字的变量,如上默认本地有个变量@list被传递进局部模板.
<%= render :partial => '/shared/mails/list', :object => @list, :as => :ruby_lists %>
as用来改变传递后partial里变量的名称,as的值只能是symbol类型
# wel_mail.html.erb
<%= render :partial => '/shared/mails/list', :collection => @lists %>
# _list.html.erb
<td><%= list.name%></td>
@lists是一个array类型的变量,例如@lists.length = 10,将有十条数据被渲染显示出来,指向collection传过来的集合的每一项.