Assemblix

Ruby on Rails

Ilari Sani | 5.4.2005

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.

Malli – mitä data on?

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ä.

Ohjain – mitä datalla tehdään?

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ä – miten data esitetään?

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.

Mulla kauas menolippu on?

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.

Linkit

Kirjoita uusi kommentti

Tämän kentän sisältöä ei näytetä julkisesti.
  • Allowed HTML tags: <h3> <img> <a> <em> <strong> <cite> <blockquote> <pre> <code> <ul> <ol> <li> <dl> <dt> <dd> <acronym> <div> <p>
  • Rivin- ja kappaleenvaihdot tunnistetaan sisällöstä automaattisesti.
  • Web- ja sähköpostiosoitteet muutetaan automaattisesti linkeiksi.

Lisätietoa muotoiluasetuksista

CAPTCHA
Tämä kysymys testaa, oletko ihminen. Tällä estetään automaattisia roskaviestejä.

Julkaisujärjestelmä: Drupal   |   Tietoa Assemblix.netistä   |   Assemblix-kirjeen tilaus