Funktionerer på to unikke måder.

Først: tager en blok, så den kan bruges ligesom Array#select.

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

Dette opbygger et array af objekter fra databasen for det pågældendeområde, konverterer dem til et array og itererererer gennem dem ved hjælp afArray#select.

Sekund: Ændrer SELECT-erklæringen for forespørgslen, så kun vissefelter hentes:

Model.select(:field)# => 

Selv om det i ovenstående eksempel ser ud som om denne metode returnerer et array, returnerer den faktisk et relationsobjekt og kan have andre forespørgselsmetoder tilknyttet, f.eks. de andre metoder i ActiveRecord::QueryMethods.

Argumentet til metoden kan også være et array af felter.

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

Du kan også bruge en eller flere strenge, som vil blive brugt uændret som SELECT-felter.

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

Hvis der er angivet et alias, vil det være tilgængeligt fra de resulterendeobjekter:

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

Accessing attributes of an object that do not have fields retrieved by a select exceptid will throw ActiveModel::MissingAttributeError:

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

admin

Skriv et svar

Din e-mailadresse vil ikke blive publiceret.

lg