Как добавить счет с активной ассоциацией записи? - PullRequest
0 голосов
/ 30 октября 2019

Мое требование - отправить размер счетчика базы данных с активным сопоставлением записей.

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

records = company.public_send(table).joins(:customer).where(customer_id: ids).order(sorting)
#records = records.count(:id) #300
records = records.limit(5)

Это возвращает мне активную запись, вместе с этим я хочу отправить весь размер записи. Как я могу это сделать

Ответы [ 2 ]

0 голосов
/ 30 октября 2019

Единственный способ сделать это с одним запросом - это использовать except, что, на мой взгляд, не самый чистый способ, но делает то, что вам нужно.

Итак, в вашем случае total_count = records.limit(5).except(:limit).count

0 голосов
/ 30 октября 2019

Я думаю, что вы должны прийти к прямому решению, используя 2 запроса:

  • Один для выбора
  • Один для общего подсчета

Этопростейшее решение по сравнению с другими, и его легко понять.

Во-вторых, я думаю, что подойдет любая нумерация страниц, но если вы не используете все функции, это того не стоит.

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

# Ref: https://stackoverflow.com/a/17206119/1600046
records = company.public_send(table).joins(:customer).where(customer_id: ids).order(sorting)
records = records.select("table_name.*, COUNT(*) OVER () as total").limit(1)
records.first.try(:total) # in case empty record
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...