Каков наилучший способ определить количество записей, которые будут возвращены запросом с rufus-tokyo?
Я хотел бы определить количество записей, которые запрос в таблице кабинета Токио вернет до того, как я выполню запрос. В качестве интерфейса я использую рубиновый камень rufus-tokyo. Каков наилучший способ сделать это?
1 ответ
Решение
Просматривая код на github, я думаю, что нашел ответ. Он будет использовать метод db#query_count, который возвращает количество записей. Вот пример подкачки записей с использованием query_count:
db = Rufus::Tokyo::Table.new(@file)
begin
# Need to find the total number of records that would be returned.
# could use db#size, except that our query filters out records after today.
total_count = db.query_count { |q|
q.add_condition 'date', :numle, @today
q.order_by 'date', :strdesc
}
pager = IndexCards::Pager.new requested_page_num, total_count
# Now let's pull the slice that we want.
results = db.query { |q|
q.add_condition 'date', :numle, @today
q.order_by 'date', :strdesc
q.limit(pager.limit, pager.offset)
}
ensure
db.close
end