Активная запись - Получить второй, третий .. элемент в базе данных (без идентификатора) - PullRequest
16 голосов
/ 28 октября 2011

Как мне получить вторую, третью .. записи в базе данных. Я не хочу использовать автоинкрементный идентификатор, сгенерированный rails.

Поскольку я удаляю записи из своей базы данных, идентификатор продолжает увеличиваться.

Так что моя БД будет иметь

id : 210 (Even thought it's currently the first value)
id : 211 (Even thought it's currently the second value)

Я знаю, что Phone.first вернет первое, как мне получить второе.

Sub Question-
Destroy_all / delete_all -
удаляет только элемент. Могу ли я удалить все записи из БД и получить идентификатор БД, начиная с единицы, не удаляя таблицу. Как я столкнулся с проблемами.

Ответы [ 3 ]

21 голосов
/ 28 октября 2011

Скажем, вы хотите четвертого пользователя:

 @users = User.limit(4)
 @fourth_user = @users[3]

Относительно вашего второго вопроса, destroy_all должен добиться цели, так как он запускает все обратные вызовы. Обязательно добавьте :dependent => :destroy в ваши отношения.

10 голосов
/ 08 октября 2016

что вам нужно это

#n=2,3,4 etc    
.limit(1).offset(n) 
8 голосов
/ 13 октября 2015

Model.second был добавлен в Rails 4.1.8.

Таким образом, вы можете использовать его на версиях Rails, равных или более.

.third, .fourth и .fifth также были добавлены к ActiveRecord::FinderMethods.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...