ruby on rails 3 - includes - Recuperando solo ciertas columnas con Rails 3 donde la cláusula
ruby sql (3)
No estoy seguro de por qué no puedo descubrir cómo hacer esto fácilmente ... Obviamente podría hacerlo con SQL en bruto, pero estoy intentando familiarizarme con ActiveRecord.
results = Model.where(:lat => (south..north), :lng => (east..west))
No quiero todos los campos, solo unos pocos. ¿Cómo limitaría los resultados para incluir solo las columnas que elijo?
Necesitas usar select
Model.where (...). Select (...)
seleccione aceptar matriz o cadena de sql sin procesar.
http://guides.rubyonrails.org/active_record_querying.html#selecting-specific-fields
Técnicamente, si desea reutilizar el filtro de subconjunto de datos para modelos de solo lectura, puede crear una ''vista'' en el nivel de la base de datos. Consulte http://dev.mysql.com/doc/refman/5.0/en/views.html
results = Model.where(:lat => (south..north), :lng => (east..west)).select([:lat, :long, :id])
Probablemente, también querrá incluir el :id
en esa selección si desea que sus resultados se comporten como objetos ActiveRecord
razonables.
Editar: Seleccionar toma un solo argumento, puede ser una matriz.