0

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

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

在此处输入图像描述

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

<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)

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

4

1 回答 1

1

您可以对每个模型使用 partial,例如,

显示.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 会使它更干净一些。

于 2013-06-26T05:53:50.953 回答