объект.

ьзование Arel в Rails - я ищу способ созданияActiveRecord::Relation что эффективно приводит кSELECT * FROM table, которым я все еще могу манипулировать дальше.

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

relation = Model.where(:archived => false) # all non-archived records
record_counts = {
  :total => relation.count,
  :for_sale => relation.where(:for_sale => true).count
  :on_auction => relation.where(:on_auction => true).count
}

Это прекрасно работает, и имеет преимущество в том, чтобы запуститьCOUNT запросы к MySQL, вместо того, чтобы фактически выбирать сами записи.

Тем не менее, теперь мне нужно включить архивные записи в счетчиках, ноrelation = Model.all приводит кArrayи я ищуActiveRecord::Relation.

Единственный способ, которым я могу думать, этоmodel.where(model.arel_table[:id].not_eq(nil)), который работает, но кажется немного абсурдным.

Кто-нибудь может пролить свет на это?

Ответы на вопрос(3)

Ваш ответ на вопрос