我想在一个视图上显示某些模型的数据。我正在建立一个页面网站。
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)
在轨道上显示记录的正确方法是什么?如果是,是否有一种简单的结构方式来获取它们?
答案 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可以使它更清洁。