Toimii kahdella ainutlaatuisella tavalla.

Ensimmäinen: ottaa lohkon, joten sitä voidaan käyttää kuten Array#select.

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

Tämä muodostaa tietokannassa olevien objektien joukon laajuusaluetta varten, muuntaa ne joukoksi ja käy ne läpi käyttäenArray#select.

Toinen: Muokkaa kyselyn SELECT-lauseen niin, että vain tietyt kentät haetaan:

Model.select(:field)# => 

Vaikka yllä olevassa esimerkissä näyttääkin siltä, että tämä metodi palauttaa anarray:n, se itse asiassa palauttaa relaatioobjektin, ja siihen voidaan liittää muita kyselymetodeja, kuten ActiveRecord::QueryMethods:n muut metodit.

Metodin argumentti voi olla myös kenttien joukko.

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

Voit myös käyttää yhtä tai useampaa merkkijonoa, joita käytetään muuttumattomina SELECT-kenttinä.

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

Jos alias on määritetty, siihen pääsee käsiksi tuloksena olevissaobjekteissa:

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

Objektin sellaisten attribuuttien käyttäminen, joilla ei ole selectillä haettuja kenttiä paitsiid, aiheuttaa ActiveModel::MissingAttributeError:

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

.

admin

Vastaa

Sähköpostiosoitettasi ei julkaista.

lg