您的位置:首页 > 大数据 > 人工智能

rails render partial的问题(collection)

2016-07-11 09:47 561 查看
Ruby代码  


<% @paginated_hits.each_with_index do |hit, index| %>  

         <%= render :partial => "search/search_item",:locals => {:hit => hit,:index =>index} %>  

<% end %>  

 我在渲染partial的时候,是再外层做了循环,官方文档中有一种用法专门用来render collection的
index.html.erb

_product.html.erb

注意: 在_product.html.erb中的product.name指的是 :partial => "product", 而不是collection 指向的@products的单数,也可以通过as指定参数

<%=
render
:partial
=>
"product"
,
:collection
=>
@products
,
:as
=>
:item
%>


则在partial页面中可以直接使用itme

<%= itme.name %>

 

在本地做了一个简单的测试:

在index页面:

Ruby代码  


<h1>Listing users</h1>  

  

<% @users.each do |user| %>  

<%= render :partial => "your", :locals =>{:your => user} %>  

<% end %>  

<br />  

  

<%= link_to 'New User', new_user_path %>  

 _your.html.erb文件中只是简单的输出用户的名字:

 <%= your.name %>

Ruby代码  


Started GET "/users" for 127.0.0.1 at 2014-03-07 00:20:24 +0800  

Processing by UsersController#index as HTML  

  [1m[36mUser Load (0.0ms)[0m  [1mSELECT "users".* FROM "users" [0m  

  Rendered users/_your.html.erb (0.0ms)  

  Rendered users/_your.html.erb (0.0ms)  

  Rendered users/_your.html.erb (0.0ms)  

  Rendered users/_your.html.erb (0.0ms)  

  Rendered users/_your.html.erb (0.0ms)  

  Rendered users/_your.html.erb (0.0ms)  

  Rendered users/_your.html.erb (0.0ms)  

  Rendered users/_your.html.erb (0.0ms)  

  Rendered users/_your.html.erb (0.0ms)  

  Rendered users/_your.html.erb (0.0ms)  

  Rendered users/_your.html.erb (0.0ms)  

  Rendered users/_your.html.erb (0.0ms)  

  Rendered users/_your.html.erb (0.0ms)  

  Rendered users/_your.html.erb (0.0ms)  

  Rendered users/_your.html.erb (0.0ms)  

  Rendered users/_your.html.erb (0.0ms)  

  Rendered users/_your.html.erb (0.0ms)  

  Rendered users/index.html.erb within layouts/application (46.9ms)  

Completed 200 OK in 62ms (Views: 62.5ms | ActiveRecord: 0.0ms)  

 页面渲染用了62.5ms

 

如果在index页面这样写:

Ruby代码  


<h1>Listing users</h1>  

  

<%= render :partial => "my", :collection => @users %>  

  

<br />  

  

<%= link_to 'New User', new_user_path %>  

_my.html.erb文件中:

  <% my.name %>

 

  页面渲染只用了15.6ms

 

速度竟然差了4倍!

 
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: