Смещение метода ActiveRecord работает неправильно - PullRequest
2 голосов
/ 20 июня 2020

Я работаю с новой базой кода и не могу понять, почему для запроса установлен произвольный предел, который мешает правильной работе метода offset.

  • mysql Версия 8.0.19 для osx10.15 на x86_64 (Homebrew)
  • Rails 6.0
Loading development environment (Rails 6.0.3.1)
[1] pry(main)> UserAccount.offset(1).last
   (1.9ms)  SET NAMES utf8,  @@SESSION.sql_mode = CONCAT(CONCAT(@@sql_mode, ',STRICT_ALL_TABLES'), ',NO_AUTO_VALUE_ON_ZERO'),  @@SESSION.sql_auto_is_null = 0, @@SESSION.wait_timeout = 2147483
  UserAccount Load (6.0ms)  SELECT `user_accounts`.* FROM `user_accounts` LIMIT 18446744073709551615 OFFSET 1

В настоящее время UserAccount.offset(n).last возвращает последнюю запись.

irb(main):001:0> UserAccount.offset(1).last == UserAccount.last
=> true
...