Funciona de dos maneras únicas.

Primero: toma un bloque para que pueda ser utilizado como Array#select.

Model.all.select { |m| m.field == value }

Esto construirá un array de objetos de la base de datos para elámbito, convirtiéndolos en un array e iterando a través de ellos usandoArray#select.

Segundo: Modifica la sentencia SELECT de la consulta para que sólo se recuperen ciertos campos:

Model.select(:field)# => 

Aunque en el ejemplo anterior parece que este método devuelve un array, en realidad devuelve un objeto de relación y se le pueden añadir otros métodos de consulta, como los otros métodos de ActiveRecord::QueryMethods.

El argumento del método también puede ser una matriz de campos.

Model.select(:field, :other_field, :and_one_more)# => 

También puede utilizar una o más cadenas, que se utilizarán sin cambios como campos SELECT.

Model.select('field AS field_one', 'other_field AS field_two')# => 

Si se ha especificado un alias, será accesible desde los objetos resultantes:

Model.select('field AS field_one').first.field_one# => "value"

El acceso a los atributos de un objeto que no tienen campos recuperados por un select exceptid lanzará ActiveModel::MissingAttributeError:

Model.select(:field).first.other_field# => ActiveModel::MissingAttributeError: missing attribute: other_field

admin

Deja una respuesta

Tu dirección de correo electrónico no será publicada.

lg