Каков наилучший способ определить количество записей, которые будут возвращены запросом с rufus-tokyo? - PullRequest
2 голосов
/ 21 февраля 2010

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

1 Ответ

1 голос
/ 21 февраля 2010

Глядя на код на 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
...