Могу ли я иметь отдельное предложение в ActiveRecord? - PullRequest
0 голосов
/ 27 января 2012

Я хочу выделить условие 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 не радует. Я думал, что вы можете разбить биты запроса независимо друг от друга.

1 Ответ

0 голосов
/ 31 января 2012

Я закончил тем, что делал это, хотя я все еще задаюсь вопросом, упускаю ли я другой более хороший способ:

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)
...