天天看点

关于rails的模板渲染

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传过来的集合的每一项.