web-dev-qa-db-ja.com

ループインRuby on Rails html.erbファイル

Ruby on Railsと私は何かを理解する必要があります。インスタンス変数(@users)があり、ループする必要がありますhtml.erbファイル内の制限された回数。

<% @users.each do |users| %>
   <%= do something %>
<%end %>

しかし、10回に制限する必要があります。私に何ができる?

26
Stark_kids

@usersにはループしたい要素よりも多くの要素があります。firstまたはsliceを使用できます。

firstを使用する

<% @users.first(10).each do |users| %>
  <%= do something %>
<% end %>

sliceを使用する

<% @users.slice(0, 10).each do |users| %>
  <%= do something %>
<% end %>

ただし、実際に@users配列の残りのユーザーが必要ない場合は、必要な数だけロードする必要があります。

@users = User.limit(10)
30
infused

できる

<% for i in 0..9 do %>
  <%= @users[i].name %>
<% end %>

ただし、ビューに必要なユーザーが10人だけの場合は、コントローラー自体で制限できます。

@users = User.limit(10)
5
Santhosh

なぜユーザーを制限しないのですか?

_<%= @users.limit(10).each do |user| %>
 ...
<%end%>
_

それでもActiveRecordを使用するので、AR関数の利点が得られます。次のような多くのこともできます。

@users.first(10)または@users.last(10)