Если вы удалили несколько предыдущих записей в БД, автоматически увеличивающийся идентификатор записи и номер строки последующих записей не синхронизируются.
Итак, как начать с заданной записи и эффективно перейти к следующей записи?
Если вы используете идентификатор записи, вы можете попасть в идентификатор, который был удален.
Если вы используете что-то вроде User.first (: offset => user_id), то вы можете пропустить некоторые записи. поскольку
в данной записи user_id может быть больше номера строки (в результате удаления предыдущей записи).
Единственное решение, которое я нашел, - увеличивать все записи каждый раз,
но это кажется очень неэффективным:
user_id = params[:id].to_i
users = User.all
next_user = nil
next_cond = false
users.each do |u|
if u.id == user_id
next_cond = true
elsif next_cond
next_user = a
break
end
end
Итак, как эффективно получить следующую запись?
Есть ли способ, например, получить номер строки данной записи?
Примечание: я использую SQLite локально, а MySQL на сервере.