Két egyedi módon működik.

Először: egy tömböt vesz fel, így ugyanúgy használható, mint az Array#select.

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

Ez egy tömböt épít az adatbázisból az adott terület objektumaiból, átalakítja őket egy tömbbe, és azArray#select segítségével iterálja őket.

Második: Módosítja a SELECT utasítást a lekérdezéshez, hogy csak bizonyosmezőket kérjen le:

Model.select(:field)# => 

Bár a fenti példában úgy tűnik, mintha ez a módszer egyarray-t adna vissza, valójában egy relációs objektumot ad vissza, és más lekérdezési módszereket is hozzá lehet csatolni, például az ActiveRecord::QueryMethods többi módszerét.

A metódus argumentuma lehet egy mezőkből álló tömb is.

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

Egy vagy több karakterláncot is használhat, amelyek változatlanul SELECT mezőként lesznek használva.

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

Ha alias volt megadva, akkor az elérhető lesz a kapott objektumokból:

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

Az olyan objektum attribútumaihoz való hozzáférés, amelyeknek nincsenek select által lekérdezett mezői, kivéve az azonosítót, ActiveModel::MissingAttributeError-t dob:

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

.

admin

Vélemény, hozzászólás?

Az e-mail-címet nem tesszük közzé.

lg