Loop in Ruby on Rails html.erb file Loop in Ruby on Rails html.erb file ruby-on-rails ruby-on-rails

Loop in Ruby on Rails html.erb file


If @users has more elements than you want to loop over, you can use first or slice:

Using first

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

Using slice

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

However, if you don't actually need the rest of the users in the @users array, you should only load as many as you need by using limit:

@users = User.limit(10)


You could do

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

But if you need only 10 users in the view, then you can limit it in the controller itself

@users = User.limit(10)


Why don't you limit the users?

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

That'd still use ActiveRecord so you get the benefit of AR functions. You can also do a number of things too such as:

@users.first(10) or @users.last(10)