Loputtomilta tuntuvat XML-tiedostot ja SQL-haut saavat web-kehittäjän usein miettimään, eikö kaiken voisi tehdä helpommin?
Ruby on Rails on uusi tulokas, joka tarjoaa Ruby-kielellä ohjelmoituja luokkia tietokantapohjaisten web-sovellusten nopeaan luomiseen.
Rails hyödyntää MVC-ajattelutapaa, suomeksi malli-näkymä-ohjain. Mallissa kuvataan tietokannan rakenne, näkymässä käyttöliittymä, ja varsinainen ohjelmalogiikka sijoitetaan ohjaimiin.
Yksi Railsin periaatteita on käyttää yhteisiä nimeämiskäytäntöjä pitkien asetustiedostojen sijaan.
Malli voi näyttää esimerkiksi seuraavalta:
class Person < ActiveRecord::Base
has_many :phones
end
Malli Person perii luokan ActiveRecord::Base, joka sisältää Railsin tietokantatoiminnot. Rails löytää nimen perusteella tietokannasta taulukon people ja analysoi sen sisällön. Malli myös kuvaa taulukon suhteen taulukkoon phones, joka sisältää puhelinnumeroita.
Rails on rajoittunut käyttämään englanninkielisiä sanoja taulukoiden ja kenttien niminä, muut kielet aiheuttavat lisätöitä.
Projektia aloitettaessa kehittäjä ajaa joukon luontiskriptejä, jotka luovat valmiit aihiot sovelluksen tiedostoille.
Yksi näistä on Scaffolding-toiminto, joka luo yhdellä komennolla yksinkertaisen web-käyttöliittymän tietojen lisäämiseen, muokkaamiseen ja poistamiseen. Valmiita funktioita on tämän jälkeen helppo täydentää tai korvata omilla.
Esimerkki ohjainfunktiosta:
def show
@person=Person.find(@params["id"])
end
Funktio show ottaa URL-parametrin id ja etsii tietokannasta sitä vastaavan henkilön. Löydetyt tiedot lähetetään edelleen näkymälle muuttujassa @person.
Näkymät ovat HTML-koodia, johon yhdistetään ns. embedded Ruby -komentoja.
Rails sisältää joukon valmiita apufunktioita esim. navigaation ja kuvien käsittelyyn. Uusin versio 0.10.1 sisältää lisäksi funktioita, jotka helpottavat Ajax-pohjaisten sovellusten luomista huomattavasti.
Esimerkki näkymästä:
<%= @person.name %>
<% @person.phones.each do |phone| %>
<%= phone.number %>
<% end %>
Näkymä esittää kaikki henkilön puhelinnumerot. Syntaksilla @person.name Rails näyttää tietokannan kentän name sisällön.
Silmukka @person.phones.each käy läpi kaikki henkilön puhelimet. Puhelintiedot tulevat erillisestä taulukosta, mutta Rails luo mallin pohjalta vaadittavat SQL-hakuehdot. Itse asiassa Railsin avulla taulukoiden yhdistäminen toimii jopa mm. SQLitessä, joka ei tätä itse tue.
Rails on teknologiana nuori, versioissa ei olla päästy edes yhteen ja ensimmäiset oppikirjatkin ovat vasta tulossa markkinoille. Se on kuitenkin jo herättänyt huomiota - toiset ovat sitä ylistäneet, ja toiset tyytyneet toteamaan että samat asiat kykenee tekemään heidänkin suosikkikielellään.
Rails-projektin sivuilta löytyy aiheesta lisätietoja, videoesittelyjä ja oppaita.
Julkaisujärjestelmä: Drupal | Tietoa Assemblix.netistä | Assemblix-kirjeen tilaus
Kirjoita uusi kommentti