Bygg deg et nettsted på 30 minutter

Begeistringen over Ruby on rails vil ingen ende ta.

I min utforsking av rails var turen kommet til Action pack. AP brukes til å bygge web-grensesnitt etter MVC-mønsteret, og leverer et begrepsapparat som er hensiktsmessig i forhold til webapplikasjoner.

De fleste databasedrevne webapplikasjoner er ganske like. Ofte vil et skjermbilde være en handling som utføres på et eller annet objekt; Create, Read, Update eller Delete er de vanligste (vil tippe at 9 av 10 bruker disse, eventuelt med andre navn), men du kan godt lage dine egne. I Actionpack er dette så enkelt som å definere en metode med samme navn som verbet, slik:


class CustomerController
  def create
    @customer=Customer.new
  end
end

Og nå det som er så sinnsykt kult med ROR: mer skal ikke til. Man kan nå gå inn i nettleseren sin, skrive inn adressen http://server/customer/create – og ROR kaller create-metoden i controlleren, og viser en (tom) side.

Ahem, tom side ja. Det er fordi det tredje elementet i MVC ikke er laget ennå. Modellen er Customer, som svært gjerne kan være et ActiveRecord-objekt. Controlleren har vi nettopp laget, men Viewet har vi ikke ennå (derfor kommer sida opp tom).

Viewet er, i sin enkleste form, en HTML-side med litt inline kode – veldig likt JSP/ASP/PHP. Du kan lage en .rhtml-side for hver metode i controlleren, for eksempel slik:


<html>
<head><title>customer/create.rhtml</title></head>
<body>
<h1>Opplysninger om <%= @customer.customer_name %></h1>
<% @customer.users.each do | user | %>
<p><%= user.full_name %></p>
<% end %>
</body></html>

Disse linjene med kode lener seg direkte på logikken du allerede har laget i modellen din, for å vise navnet på firmaet (@customer), samt liste ut alle brukerne knyttet til dette.

Jeg brukte 30 minutter igår på å webenable applikasjonen jeg har bygget med ActiveRecord (se egen atrikkel om dette).

Det ble 40 linjer med kode.

Ruby er et artig bekjentskap. Besnærende at noe som gjøres enklere enn man ville gjort det sjøl blir både kraftigere, morsommere og hundre ganger kulere enn man kunne drømme om.

Det er sagt tusenvis av ganger før, og med tusen forskjellige ord.

Less … is More!

Code art by Frisk Bris. And, oh, we work too.