0

次のように、2 つのクエリで where 句を除外したいと思います。

where_clause = where("(created_at >= ? and created_at < ?) or (updated_at >= ? and updated_at < ?)", range_start_date, range_end_date, range_start_date, range_end_date)
@book_instances = BookInstance.limit(pagination.items_per_page).
    offset((pagination.page - 1) * pagination.items_per_page).
    where_clause.
    order(:id)
@pagination.total_items = BookInstance.where_clause.count

しかし、ActiveRecord は満足していません。クエリビットを個別に分割できると思いました。

4

1 に答える 1

0

私はこれをやってしまいましたが、別のより良い方法が欠けているかどうかはまだ疑問に思っています:

book_instances_in_date_range = BookInstance.where(
    "(created_at >= ? and created_at < ?) or (updated_at >= ? and updated_at < ?)",
    range_start_date, range_end_date, range_start_date, range_end_date)

@pagination.total_items = book_instances_in_date_range.count

@book_instances = book_instances_in_date_range.limit(pagination.items_per_page).
    offset((pagination.page - 1) * pagination.items_per_page).
    order(:id)
于 2012-01-31T18:06:32.103 に答える