Rails / Arel: Selecionando todos os registros como ActiveRecord :: Relation
Usando o Arel no Rails - Estou procurando uma maneira de criar umActiveRecord::Relation
que resulta efetivamente emSELECT * FROM table
, que ainda posso manipular mai
Por exemplo, eu tenho um modelo dividido em várias categorias e retorno as contagens da seguinte maneira:
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
}
Isso funciona bem e tem a vantagem de dispararCOUNT
consultas ao MySQL, em vez de realmente selecionar os próprios registro
No entanto, agora preciso incluir registros arquivados nas contagens, masrelation = Model.all
resulta em umArray
e estou procurando umActiveRecord::Relation
.
A única maneira de pensar em fazer isso émodel.where(model.arel_table[:id].not_eq(nil))
, que funciona, mas parece um pouco absurd
Alguém pode lançar alguma luz sobre isso?