性能在单页应用程序轨道中显示记录

时间:2013-06-26 04:58:16

标签: ruby-on-rails

我想在一个视图上显示某些模型的数据。我正在建立一个页面网站。

def index
 @content = Content.where(:publish => true)
 @myaccount = Myaccount.where(:publish => true)
 @sliders = Slider.where(:publish => true)
end

enter image description here

我知道,我可以像这样显示它们:

<div class="left">
 <div>
  <% @myaccounts.each do |ma|  %>
   <%= ma.name %>
  <% end %>
 </div>
 <div>
  <% @contents.each do |co| %>
   <%= co.menu %>
  <% end %>
 <div>
</div>
<div class="right">
 <div>
  <% @myaccounts.each do |mac|  %>
   <%= mac.title %>
  <% end %>
 </div>
 <div>
  <% @sliders.each do |sl|  %>
   <%= image_tag(sl.image_url) %>
  <% end %>
 </div>
 <div>
  <% @contents.each do |con|  %>
   <%= con.body %>
  <% end %>
 </div>
</div>

时间

Completed 200 OK in 4679ms (Views: 1515.1ms | ActiveRecord: 2601.2ms)

如果使用<%= render 'file' %>,则时间:

Completed 200 OK in 2673ms (Views: 2652.2ms | ActiveRecord: 18.0ms)

在轨道上显示记录的正确方法是什么?如果是,是否有一种简单的结构方式来获取它们?

1 个答案:

答案 0 :(得分:1)

你可以为每个模型使用partial,

<强> show.erb.html

<div> render :partial => "my_accounts", :locals=>{myaccounts => @myaccounts}</div>

并在 _my_accounts.erb.html

<div>
  <% @myaccounts.each do |ma|  %>
    <%= ma.name %>
  <% end %>
</div>

但你的代码可以正常工作,使用partial可以使它更清洁。