0

あるモデルのデータを 1 つのビューに表示したい。私は1ページのサイトを構築しています。

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

次のように、各モデルにパーシャルを使用できます。

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>

ただし、コードは正常に機能します。部分を使用すると、コードが少しきれいになります。

于 2013-06-26T05:53:50.953 に答える