Active Recordin perusteet
ORM:n perusteet.
Active Recordin perusteet on ilmainen Ruby Academy-oppitunti CoddyKitissä. Tämä on oppitunti 1/4. Voit lukea tästä oppimispolusta kokonaan mitkä tahansa 3 oppituntia ilmaiseksi — sen jälkeen CoddyKit PRO avaa kaikki oppitunnit sekä käytännön harjoittelun sisäänrakennetulla koodieditorilla ja ympäri vuorokauden toimivalla tekoälytuutorilla. Oppitunti kuuluu Ruby Academy-oppimispolkuun, ja edistymisesi synkronoituu verkon ja CoddyKit-sovelluksen välillä. Ruby Academy-kurssilla on yhteensä 4 oppituntia.
Mikä Active Record on?
Active Record on Railsin ORM- eli oliorelaatiokartoituskerros. Se yhdistää Ruby-oliot tietokantataulujen riveihin, joten voit käsitellä olioita suoran SQL:n sijaan.
- Luokka vastaa taulua.
- Ilmentymä vastaa riviä.
- Attribuutti vastaa saraketta.
Mallin määrittäminen
Malli on luokka, joka perii luokan ApplicationRecord (joka puolestaan perii luokan ActiveRecord::Base). Käytännön mukaan User-malli yhdistetään automaattisesti users-tauluun.
class User < ApplicationRecord
end
# Maps to the 'users' table
# Columns become attributes automaticallyKäytännöt määritysten sijaan
Active Record käyttää nimeämiskäytäntöjä, joten määrityksiä tarvitaan vähemmän:
- Luokkien nimet ovat yksikössä ja CamelCase-muodossa:
User. - Taulujen nimet ovat monikossa ja snake_case-muodossa:
users. - Ensisijainen avain on oletusarvoisesti
id.
Kun käytäntöjä noudatetaan, useimmat kytkennät toimivat automaattisesti.
Tietueiden luominen
Rivejä voi luoda komennolla create tai rakentaa ensin ja tallentaa sitten komennolla save. create luo olion ja tallentaa sen yhdellä kutsulla.
user = User.create(name: "Ada", email: "ada@example.com")
# Or in two steps:
other = User.new(name: "Linus")
other.email = "linus@example.com"
other.saveTietueiden lukeminen
Hae tietueita hakumenetelmillä:
User.find(1)ensisijaisen avaimen perusteella (antaa virheen, jos tietuetta ei löydy).User.find_by(email: 'a@b.com')minkä tahansa sarakkeen perusteella (palauttaa arvon nil, jos tietuetta ei löydy).User.allkaikkia rivejä varten.User.firstjaUser.last.
user = User.find(1)
admin = User.find_by(role: "admin")
everyone = User.allTietueiden päivittäminen
Muuta attribuutteja ja kutsu sitten save-metodia tai käytä update-metodia arvojen määrittämiseen ja tallentamiseen samalla kertaa. update palauttaa arvon true tai false validoinnin perusteella.
user = User.find(1)
user.update(name: "Ada Lovelace")
# Equivalent two-step form:
user.name = "Ada Lovelace"
user.saveTietueiden poistaminen
Poista rivejä komennolla destroy (suorittaa callbackit ja assosiaatiot) tai komennolla delete (suora SQL, ohittaa callbackit). Käytä ensisijaisesti komentoa destroy, ellei callbackien ohittamiseen ole erityistä syytä.
user = User.find(1)
user.destroy
# Bulk destroy:
User.where(active: false).destroy_allAttribuutit ja muutosseuranta
Active Record seuraa tallentamattomia muutoksia. Metodit kuten changed?, changes ja name_was kertovat, mitkä tiedot ovat muuttuneet ennen tallennusta. Tämä on hyödyllistä callbackeissa ja lokituksessa.
user = User.find(1)
user.name = "New Name"
puts user.changed? # true
puts user.name_was # old value
puts user.changes.inspectschema.rb-tiedosto
Active Record lukee taulujen rakenteen tietokannasta, ei mallista. Nykyinen rakenne on tallennettu tiedostoon db/schema.rb, joka luodaan migraatioista. Sitä muokataan käsin vain harvoin.
Mihin SQL päätyy?
Active Record muuntaa metodikutsusi SQL:ksi taustalla. User.find(1) muuttuu muotoon SELECT * FROM users WHERE id = 1 LIMIT 1. Luodun SQL:n voi nähdä komennolla User.where(active: true).to_sql.
sql = User.where(active: true).to_sql
# => SELECT "users".* FROM "users" WHERE "users"."active" = TRUEMiksi ORM auttaa
Active Record tarjoaa:
- Tietokannasta riippumatonta koodia (PostgreSQL, MySQL, SQLite).
- Suojan SQL-injektioita vastaan parametrisoitujen kyselyjen avulla.
- Selkeän, oliopohjaisen tavan käsitellä tietoja.
Suoraa SQL:ää tarvitaan vain erityistapauksissa.
Pikatarkistus
Testaa, ymmärrätkö Active Recordin perusteet.
Kertaus: Active Recordin perusteet
Opit ORM:n perusteet:
- Luokka vastaa taulua ja ilmentymä riviä.
- Nimeämiskäytännöt hoitavat määritykset.
- CRUD:
create,find/find_by,update,destroy. - Muutosseuranta näyttää tallentamattomat muutokset.
- Active Record luo turvallisen SQL:n puolestasi.
Seuraavaksi tietokantakaaviota hallitaan migraatioilla.
Opi Ruby tekoälytuutorin avulla — ilmaiseksi
Kirjoita ja suorita oikeaa koodia selaimessa, saa välitöntä apua tekoälytuutorilta ympäri vuorokauden ja jatka siitä, mihin jäit, verkossa tai sovelluksessa.
- Kurssit
- 29
- Oppitunnit
- 109
Usein kysytyt kysymykset
Onko oppitunti ”Active Recordin perusteet” ilmainen?
Kyllä — voit lukea täällä verkossa kokonaan ilmaiseksi mitkä tahansa Ruby Academy-oppimispolun 3 oppituntia, myös oppitunnin “Active Recordin perusteet”. Sen jälkeen CoddyKit PRO avaa kaikki oppitunnit sekä interaktiiviset harjoitukset sisäänrakennetulla koodieditorilla ja ympäri vuorokauden toimivalla tekoälytuutorilla. Ruby Academy-kurssilla on yhteensä 4 oppituntia.
Mitä opin oppitunnilla ”Active Recordin perusteet”?
ORM:n perusteet. Harjoittelet Ruby Academy-aihetta koodilla, jonka suoritat suoraan selaimessa. Ympäri vuorokauden käytettävissä oleva tekoälytuutori vastaa kysymyksiisi oppitunnin aikana.
Tarvitsenko kokemusta aloittaakseni Ruby Academy-opiskelun?
Aiempi kokemus ei ole tarpeen. CoddyKitin Ruby Academy-oppimispolku sopii vasta-alkajista edistyneisiin, joten voit aloittaa tästä tai alusta ja edetä omaan tahtiisi. Tämä on oppitunti 1/4.
Kuinka kauan ”Active Recordin perusteet”-oppitunnin suorittaminen kestää?
Useimmat CoddyKitin oppitunnit kestävät noin 5–10 minuuttia. Jokainen oppitunti on lyhyt ja interaktiivinen, joten edistyt tasaisesti ja voit jatkaa siitä, mihin jäit – sekä verkossa että sovelluksessa.
Voinko kirjoittaa ja suorittaa koodia tällä Ruby Academy-oppitunnilla?
Kyllä. Jokainen Ruby Academy-oppitunti sisältää sisäänrakennetun koodieditorin, joten voit kirjoittaa ja suorittaa oikeaa koodia suoraan selaimessa ja saada välitöntä palautetta tekoälyltä – paikallista asennusta ei tarvita.
Kaikki tämän kurssin oppitunnit
- Active Recordin perusteet
- Migraatiot
- Assosiaatiot
- Validoinnit ja kyselyt