Ruby on Rails for Designers

Ruby on Rails er en open-source web rammeverk som er optimalisert for programmerer lykke og bærekraftig produktivitet. Den lar deg skrive vakker kode ved å favorisere konvensjonen over konfigurasjonen.

Dette er måten Ruby on Rails fremmer seg selv - men i mine ord er det et utrolig rammeverk som virkelig kan gjøre livet ditt lettere. Du kan lære mer på deres nettsted http://rubyonrails.org

Trinn 1- Installere Ruby på Rails

Installere Ruby on Rails (også ofte forkortet til RoR) er ganske smertefri på de fleste systemer, men du må være komfortabel å åpne opp terminalen. Ruby on Rails nedlastingssiden gir koblinger til å komme i gang, og jeg vil gjengi dem her for å spare deg litt tid. Bare som et notat, er disse stedene å få Ruby, som er det Rails er programmert i, og vi skal installere Rails om et minutt. For å lære mer om språket, se Ruby-siden

  • Windows: One-Click Ruby Installer (jeg anbefaler å bruke 1.8.6-26 Final Release)
  • Mac OS X 10.4: Ships med ødelagte Ruby, men du kan følge den fantastiske guiden av Dan Benjamin
  • Mac OS X 10.5: Hvis du installerer utviklerverktøyene fra Apple, blir du innstilt. Prøv enten installasjonsplater eller Apples utviklernettsted og last ned Xcode
  • Linux: Selv om dette kan variere for hver distribusjon, må du installere rubin, irb og rdoc

Nå som vi har lastet ned Ruby, sørg for at du har RubyGems, som er en pakkebehandling for Ruby.

For å teste om du har RubyGems, kjør følgende i terminal:

perle -v

Av denne skrivingen er 1.3.2 den nyeste versjonen. For å oppdatere hvis du ikke har den nyeste versjonen, kjør følgende, og hvis du er på en Mac, sett sudo på forsiden.

perleoppdatering - system

Hvis du ikke bruker RubyGems, følger du disse trinnene:

  1. Last ned den nyeste versjonen av RubyGems her.
  2. Pak pakken ut
  3. Endre i katalogen i terminalen din (cd er kommandoen)
  4. Kjør dette i terminalen: ruby ​​setup.rb (Legg sudo foran kommandoen for Linux og Mac OS X-brukere, du må også fortsette som for alle geminstallasjonskommandoer)

Hvis du har et Linux-system, bør du kunne installere RubyGems via pakken din, men jeg foretrekker fremgangsmåten ovenfor. Hvis du har flere problemer, sjekk installasjonsdokumentasjonen på RubyGems nettsted.

Installere Rails

Nå som vi har den nyeste versjonen av RubyGems, la oss installere Rails:

perle installasjonsskinner

Det vil ta noen minutter å installere Rails og alle sine avhengigheter.

Trinn 2 - Opprette et program

Så nå som vi har Ruby, RubyGems og Rails installert, la oss lage et prosjekt! For å opprette et nytt prosjekt, vil du bruke kommandoen Rails til å lage nye prosjekter. Vi vil lage et enkelt prosjekt med navnet "blog". Merk: Dette vil opprette appmappen i den nåværende katalogen du er i terminal, så sørg for at du endrer inn i katalogen du vil at appen skal lagres i.

skinner bloggen

Du bør se noe som dette flyet ved:

Deretter åpner du prosjektet i din favoritt tekstredigerer / IDE. Jeg personlig elsker TextMate, mens bare for Mac OS X, er det noen flotte kloner som også er tilgjengelige.

Mappestruktur

Mappestrukturen til en Ruby on Rails vil se ut som følgende:

Det er tre mapper som en utvikler eller designer trenger å jobbe med på daglig basis: appen, config og offentlige mapper. Vennligst se de korte forklaringene for hver av mappene:

  • app: Det er her programmets logikk lever.
    • kontrollerne: Det er her Rails ser etter kontrollerklassene. Kort sagt, disse mottar forespørslene.
    • hjelpere: Hjelperne bor i denne katalogen og hjelper kontrollerne, modellene og visningene
    • modeller: Hver av disse representerer i utgangspunktet en tabell i databasen, så det er enkelt å finne informasjon og sette opp søknaden din
    • Treff: hva brukeren ser
      • oppsett: Disse er hver av layoutene du kan definere en kontroller å bruke. Gjør templering veldig enkelt.
      • alle de andre: Mens i vår søknad vi for øyeblikket ikke har noen, vil hver av de andre mappene som er i denne mappen representere og forholde seg tilbake til kontrollerne, og filene som kommer inn her, samsvarer med handlingene i kontrolleren
  • config: Denne mappen inneholder alle appens innstillinger. Noen spesifikke filer:
    • database.yml: Denne filen inneholder databasens innstillinger
    • environment.rb: Denne filen inneholder innstillinger for Rails for applikasjonen din
    • environements /: Denne mappen inneholder konfigureringsinnstillingene for hvert av de spesifikke miljøene: utvikling, test og produksjon
    • routes.rb: Denne filen inneholder innstillingene for nettadresseskjemaet, samt spesifikk nettadresse og hvor du skal sende forespørslene
  • db: Denne mappen vil ende opp med å holde databasen din (hvis du bruker sqllite), databaseskjemaet og alle dine databasemigrasjoner (endringer i strukturen)
  • doc: Denne mappen vil holde all dokumentasjonen generert av rake doc: app
  • lib: Filene her inne inneholder programspesifikke koden som ikke tilhører kontrollerne dine.
  • Logg: Rails lagrer loggene inn her, fire av dem. En for serverspesifikke ting i server.log og en for hvert miljø.
  • offentlig: Denne mappen inneholder alle filene som ikke vil endre seg så mye. Rails ser etter filer henne før de prøver å gå til en kontroller. Javascripts lagres i javascripts-mappen, bilder i bildemappen og stilark i mappen Stylesheets. Statiske filer som robots.txt og andre html-filer kan også lagres her. Pass på at du sletter index.html-filen fordi den vil vises i stedet for det du vil ha!
  • manus: Disse skriptene gjør livet ditt enda enklere. Server-scriptet lanserer utviklingswebserveren, og genererer genererer kode.
  • test: Tester du skriver og de som Rails skaper for deg, blir alle lagret her.
  • tmp: Rails lagrer midlertidige filer her.
  • selger: Her kan du installere Rails plugins (eller biblioteker) laget av tredjeparter som ikke kommer som standard med Rails distribusjon.

Trinn 3 - Få hendene skitne

Selv om formålet med denne opplæringen ikke er å lage et program, vil vi fortsatt gjøre litt programmering. La oss først opprette en kontroller som heter artikler: (Pass på at du har endret seg til roten til Rails-applikasjonen)

skript / generer kontrollerartikler

Åpne nå filen, og du bør se dette:

klasse ArticlesController < ApplicationController end 

Alt denne koden sier er at vi definerer en ny klasse kalt ArticlesController som arver fra en annen klasse, kalt ApplicationController. Nå skal vi lage en handling (referert til som en metode strengt tatt i Ruby) navneindeks, så når du går til http: // localhost: 3000 / articles / vil du bli vist noe. Endre koden din slik at den ser ut som:

klasse ArticlesController < ApplicationController def index end end

Så nå som vi har en handling, gå til app / visningsmappen. Vi skal lage en visning, så når en bruker ber om denne nettadressen, ser de faktisk noe. Du har kanskje lagt merke til at det er en ny mappe her som heter artikler; denne mappen ble opprettet da vi genererte kontrolleren. Så, lag en ny fil i artiklene mappen heter index.html.erb. Du kan spørre om slutten, html refererer til typen fil, og erb refererer til innebygd Ruby som templerende motor. Jeg personlig foretrekker rhtml som det er en enkelt slutt, men det vil bli avskrevet i Rails 3, som er planlagt å bli utgitt på RailsConf denne sommeren. Sett dette inn i din nye fil:

Klokken er nå <%= Time.now %>

Tastene & lt% =%> kan intrigere deg. Denne taggen er ment slik at Ruby ouputs resultatene av den vedlagte Ruby-koden. Så denne koden vil skrive ut tiden nå. Den andre taggen du vil bruke i Rails er ganske enkelt <%- -%>. Denne taggen er ment for Ruby-kode som ikke faktisk utfører noe, for eksempel når du gjentar gjennom elementer i en matrise.

Nå skal vi lage et oppsett for å gjøre denne teksten vakker. Så opprett en fil i katalogen visninger / layouter med navnet application.html.erb med følgende i det:

   <%= h(@title) %> <%= stylesheet_link_tag 'application' %> <%= javascript_include_tag 'prototype' %> <%= yield(:head) %>   
<%- flash.each do |name, msg| -%> <%= content_tag :div, msg, :id => "flash _ # name"%> <%- end -%> <%= yield %>

Først, før jeg forklarer koden, vil jeg at du skal vite hvorfor vi heter filen application.html.erb. Rails vil automatisk laste inn denne utformingen hver gang, med mindre annet er angitt. Hvis du hadde kalt dette oppsettet "layout", ville du måtte legge til layout: layout øverst på kontrolleren. Denne koden har noen viktige godbiter som du vil vite for når du utvikler oppsett.

  • <%= stylesheet_link_tag 'application' %>: Denne taggen genererer CSS-inkluderings-taggen for CSS-filen med navnet application.css
  • <%= javascript_include_tag 'prototype' %>: Denne taggen genererer Javascript-inkluderingstaggen for Prototype javascript-biblioteket. Prototype er standard javascript-biblioteket som følger med Rails. Du kan også sette: standard (ikke i enkelt anførselstegn) i stedet for bare prototype og Rails vil laste alle standardene: alle vil laste alle filer i mappen public / javascripts.
  • <%- flash.each do |name, msg| -%>: Denne koden og koden i blokken betyr at for hvert element i flash-arrayet, vil det vise en melding til brukeren.
  • <%= yield %>: Dette gir ut all info fra den individuelle visningen, og utdataene i innsiden av malen og sender denne til brukeren.

La oss nå lage en rask CSS-fil, kalt application.css i offentlige / stylesheets, og legg inn følgende i det:

kropp bakgrunnsfarge: # 111; font-familie: Verdana, Helvetica, Arial; skriftstørrelse: 14px;  #container width: 75%; margin: 0 auto; bakgrunnsfarge: #FFF; polstring: 10px; border: solid 5px # 999; margin-topp: 20px; 

Nå har vi et veldig enkelt program for å vise gjeldende tid; Forhåpentligvis bør du være mer kjent med grunnleggende Rails.

Trinn 4 - Etterbehandling

Du kan tenke, "Dette er kult og alt, men hvordan ser jeg sluttproduktet?" Det er en terminalkommando du må løpe mens du er i basen av programmet Rails for å starte den lokale utviklingsserveren. script / server vil starte serveren, normalt på port 3000. Kjør kommandoen og pek nettleseren din til http://127.0.0.1:3000/articles. Du bør se følgende:

For å stoppe serveren velg terminalvinduet og Control-C. Dette vil stoppe utviklingsserveren. Som et notat, sørg for at du aldri kjører en produksjonsserver på denne måten.

Det er en siste ting jeg vil gjerne vise deg. Som jeg sa før, administrerer filen config / routes.rb hvor forespørsler går. Åpne filen; vi skal gjøre det slik at du går til http://127.0.0.1:3000/, ser det samme som før. Finn linjen, "# Du kan få roten til nettstedet ditt rutet med map.root - bare husk å slette public / index.html." Under det avsnittet legger du til følgende:

map.root: controller => "articles"

Lagre filen, og kontroller at du starter webserveren på nytt. Du må alltid starte serveren når du lager en ny modell, og endre noen andre filer som Rails lagrer i minnet for å øke hastigheten på serveren. Pass på at du sletter public / index.html, eller bare endre navn på den. Kontroller at serveren er startet og gå til http://127.0.0.1:3000. Du bør se det samme.

Konklusjon

Så nå bør du være litt mer kjent med Ruby on Rails. Jeg har også koblet til noen virkelig gode nettsteder å referere til når du utvikler med Rails. Ha det gøy å koding med Rails!

  • Railscasts satt på av Ryan Bates er en fantastisk kilde til videoopplæringsprogrammer, og du kan alltid forvente noe flott.
  • The Rails API er en fin måte å finne mer informasjon om et emne du kanskje ikke er helt sikker på.

Følg oss på Twitter for flere daglige webutviklingsverktøy og artikler.