ruby-on-railspagy

Pagy : How to keep consistent loop index across pages?


I get a pg result with a postgres query like

  ActiveRecord::Base.transaction do
    ActiveRecord::Base.connection.execute(distance_sql)
  end

And some variables

ids = result.column_values(1)
@kms = result.column_values(6)
towns = Town.find(ids)
@pagy, @towns = pagy_array(towns, items: 18)

and my loop

<% @towns.each_with_index do |town, idx| %>
  <%= town.name %> - <%= @kms[idx] %>
<% end %>

How to keep consistent loop index across pages ?


Solution

  • Just replace the loop by :

    <% @towns.each.with_index(@pagy.offset) do |poi, idx| %>