Ruby on Rails för Designers

Ruby on Rails är en open-source webbram som optimeras för programmerarens lycka och hållbar produktivitet. Det låter dig skriva vacker kod genom att favorera konventionen över konfigurationen.

Detta är hur Ruby on Rails främjar sig - men i mina ord är det en otrolig ram som verkligen kan göra ditt liv mycket enklare. Du kan lära dig mer på deras webbplats http://rubyonrails.org

Steg 1 - Installera Ruby på Rails

Installera Ruby on Rails (också ofta förkortad till RoR) är ganska smärtfri på de flesta system, men du måste vara bekväm att öppna terminalen. Ruby on Rails nedladdningssida ger länkar till att komma igång, och jag kommer att reproducera dem här för att spara lite tid. Precis som en anteckning är dessa platser att få Ruby, vilket är vad Rails är programmerade i, och vi kommer att installera Rails om en minut. Om du vill veta mer om språket, granska Ruby-webbplatsen

  • Windows: One-Click Ruby Installer (jag rekommenderar att du använder 1.8.6-26 Final Release)
  • Mac OS X 10.4: Sänder med brutna Ruby men du kan följa den fantastiska guiden av Dan Benjamin
  • Mac OS X 10.5: Om du installerar utvecklingsverktygen från Apple kommer du att ställas in. Prova antingen dina installationsskivor eller Apples utvecklingswebbplats och ladda ner Xcode
  • Linux: Även om detta kan variera för varje distribution, måste du installera rubin, irb och rdoc

Nu när vi har laddat ner Ruby, se till att du har RubyGems, som är en pakethanterare för Ruby.

För att testa om du har RubyGems, kör följande i terminal:

gem -v

Med detta skrivande är 1.3.2 den senaste versionen. Uppdatera om du inte har den senaste versionen, kör följande och om du är på en Mac, sätt sudo framåt.

pärla uppdatering - system

Om du inte ska använda RubyGems följer du dessa steg:

  1. Ladda ner den senaste versionen av RubyGems här.
  2. Extrahera paketet
  3. Byt till katalogen i din terminal (cd är kommandot)
  4. Kör detta i terminalen: ruby ​​setup.rb (Lägg till sudo framför kommandot för Linux och Mac OS X-användare, du måste också fortsätta det för alla geminstallationskommandon)

Om du har ett Linux-system, bör du kunna installera RubyGems via din pakethanterare, men jag föredrar metoden ovan. Om du har några problem, kolla in installationsdokumentationen på RubyGems webbplats.

Installera Rails

Nu när vi har den senaste versionen av RubyGems, låt oss installera Rails:

pärla installationsskenor

Det tar några minuter att installera Rails och alla dess "dependancies".

Steg 2 - Skapa en ansökan

Så nu när vi har Ruby, RubyGems och Rails installerat, låt oss skapa ett projekt! För att skapa ett nytt projekt, kommer du att använda kommandot Rails för att skapa nya projekt. Vi kommer att skapa ett enkelt projekt med namnet "blogg". Notera: Detta skapar appmappen i den aktuella katalogen du är i terminal, så se till att du ändrar till den katalog som du vill att appen ska lagras i.

rails blogg

Du borde se något som denna fluga genom:

Öppna sedan projektet i din favorit textredigerare / IDE. Jag älskar personligen TextMate, medan bara för Mac OS X finns det några stora kloner som också är tillgängliga.

Mappstruktur

Mappstrukturen för en Ruby on Rails kommer att likna följande:

Det finns tre mappar som varje utvecklare eller designer behöver arbeta med dagligen: appen, konfigurationen och de offentliga mapparna. Läs igenom de korta förklaringarna för var och en av mapparna:

  • app: Det är här din ansökans logik lever.
    • regulatorer: Det är här Rails letar efter regulatorklasserna. Kort sagt, dessa mottar begäran.
    • hjälpare: Hjälpare bor i den här katalogen och hjälper till med kontroller, modeller och synpunkter
    • modeller: Var och en av dessa representerar i princip en tabell i databasen, så att hitta information och konfigurera din ansökan är död enkel
    • visningar: vad användaren ser
      • layouter: Dessa är alla de layouter du kan definiera en kontroller för att använda. Gör templering mycket lätt.
      • alla de andra: I vår ansökan har vi för närvarande ingen, men alla andra mappar som kommer att finnas i den här mappen representerar och relaterar tillbaka till kontrollerna, och filerna som kommer att finnas här motsvarar åtgärderna i kontrollenheten
  • config: Den här mappen innehåller alla dina appinställningar. Några specifika filer:
    • database.yml: Den här filen innehåller dina databasinställningar
    • environment.rb: Den här filen innehåller inställningarna för Rails för din applikation
    • environements /: Den här mappen innehåller konfigurationsinställningarna för var och en av de specifika miljöerna: utveckling, test och produktion
    • routes.rb: Den här filen innehåller inställningarna för URL-schemat, liksom den specifika webbadressen och var du ska skicka förfrågningarna till
  • db: Den här mappen kommer sluta hålla din databas (om du använder sqllite), ditt databasschema och alla dina databasmigreringar (ändras till strukturen)
  • doc: Den här mappen innehåller all dokumentation som genereras av rake doc: app
  • lib: Filerna här innehålla programspecifik kod som inte hör hemma i dina kontroller.
  • logga: Rails lagrar loggarna här, fyra av dem. En för serverns specifika saker i server.log och en för varje miljö.
  • offentlig: Den här mappen innehåller alla filer som inte kommer att förändras lika mycket. Rails söker efter filer innan hon försöker gå till en kontroller. Javascripts lagras i mappen javascripts, bilder i bildmappen och stylesheets i stylesheets-mappen. Statiska filer som robots.txt och andra html-filer kan också lagras här. Se till att du tar bort index.html-filen eftersom den kommer att dyka upp istället för vad du vill ha!
  • manus: Dessa skript gör ditt liv mycket enklare. Serverns skript lanserar utvecklingswebbservern och genererar genererar kod.
  • testa: De tester du skriver och de som Rails skapar för dig lagras alla här.
  • tmp: Rails lagrar alla tillfälliga filer här.
  • Säljare: Här kan du installera Rails plugins (eller bibliotek) som görs av tredje part som inte kommer som standard med Rails distributionen.

Steg 3 - Få dina händer smutsiga

Medan syftet med denna handledning inte är att skapa en applikation, kommer vi fortfarande att göra lite programmering. Låt oss först skapa en kontroller med namngivna artiklar: (Se till att du har ändrats till roten i programmet Rails)

skript / generera kontrollerartiklar

Öppna nu filen, och du bör se detta:

klass ArticlesController < ApplicationController end 

Allt den här koden säger är att vi definierar en ny klass som heter ArticleController som ärar från en annan klass som heter ApplicationController. Nu ska vi skapa en åtgärd (hänvisad till som en metod i strikt tal i Ruby) namnindex, så när du går till http: // localhost: 3000 / articles / du kommer att visas något. Ändra din kod så att den ser ut som:

klass ArticlesController < ApplicationController def index end end

Så nu när vi har en åtgärd, gå till app / visningsmappen. Vi ska skapa en vy så när en användare begär den webbadressen ser de faktiskt något. Du kanske har märkt att det finns en ny mapp här heter artiklar; den här mappen skapades när vi genererade kontrollenheten. Så, skapa en ny fil i artikelmappen heter index.html.erb. Du kan fråga om slutet, html refererar till typen av fil, och erb refererar till inbäddad Ruby som templerande motor. Jag föredrar personligen rhtml eftersom det är en enda slut, men det kommer att skrivas av i Rails 3, vilket är planerat att släppas på RailsConf i sommar. Lägg det här i din nya fil:

Klockan är nu <%= Time.now %>

Taggarna & lt% =%> kan intrigera dig. Denna tagg är menad så att Ruby ouputs resultaten av den bifogade Ruby-koden. Så den här koden kommer att skriva ut tiden nu. Den andra taggen du ska använda i Rails är helt enkelt <%- -%>. Den här taggen är avsedd för Ruby-kod som inte faktiskt matar ut någonting, till exempel när man repeterar genom objekt i en array.

Nu ska vi skapa en layout för att göra denna text vacker. Så skapa en fil i katalogen visningar / layouter med namnet application.html.erb med följande 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, innan jag förklarar koden, vill jag att du ska veta varför vi heter filen application.html.erb. Rails laddar automatiskt denna layout varje gång om inget annat anges. Om du hade valt denna layout "layout" skulle du behöva lägga till layout: layout överst på kontrollenheten. Det här kvarteret har några viktiga prickar som du kommer att vilja veta för när du utvecklar layouter.

  • <%= stylesheet_link_tag 'application' %>: Den här taggen genererar CSS-inkluderingstaggen för CSS-filen med namnet application.css
  • <%= javascript_include_tag 'prototype' %>: Den här taggen skapar JavaScript-taggtaggen för javascriptbiblioteket Prototype. Prototyp är standard javascript-biblioteket som levereras med Rails. Du kan också ange: standardvärden (inte i enkla citat) istället för bara prototyp och Rails laddar alla standardvärden: alla skulle ladda alla filer i mappen public / javascripts.
  • <%- flash.each do |name, msg| -%>: Den här koden och koden i blocket innebär att för varje objekt i blixtraden kommer det att visa ett meddelande till användaren.
  • <%= yield %>: Detta matar ut all information från den individuella vyn och matar in i mallen och skickar den till användaren.

Nu, låt oss skapa en snabb CSS-fil med namnet application.css i offentliga / stylesheets och lägg följande i det:

kropp bakgrundsfärg: # 111; font-family: Verdana, Helvetica, Arial; typsnittstorlek: 14px;  #container width: 75%; marginal: 0 auto; bakgrundsfärg: #FFF; vaddering: 10px; gräns: fast 5px # 999; marginal-topp: 20px; 

Nu har vi en mycket enkel applikation för att visa aktuell tid; Förhoppningsvis borde du bli mer bekant med grunderna i Rails.

Steg 4 - Efterbehandling

Du kanske tänker, "Det här är coolt och allt, men hur ser jag den slutliga produkten?" Det finns ett terminalkommando som du behöver springa i basen av programmet Rails för att starta den lokala utvecklingsservern. script / server startar servern, normalt på port 3000. Kör kommandot och peka webbläsaren till http://127.0.0.1:3000/articles. Du bör se följande:

För att stoppa servern väljer du terminalfönstret och Control-C. Detta kommer att stoppa utvecklingsservern. Som en anteckning, se till att du aldrig kör en produktionsserver på så sätt.

Det finns en sista sak som jag skulle vilja visa dig. Som jag tidigare sagt hanterar filen config / routes.rb där förfrågningar går. Öppna filen; vi ska göra det så när du går till http://127.0.0.1:3000/, ser du samma sak som tidigare. Sök linjen, "# Du kan få roten till din webbplats dirigerad med map.root - kom ihåg att ta bort public / index.html." Under det avsnittet lägger du till följande:

map.root: controller => "articles"

Spara filen och se till att du startar om webbservern. Du måste alltid starta om servern när du skapar en ny modell och ändra några andra filer som Rails lagrar i minnet för att påskynda servern. Se till att du tar bort public / index.html, eller bara byt namn på den. Kontrollera nu att servern är igång och gå till http://127.0.0.1:3000. Du borde se samma sak.

Slutsats

Så nu borde du vara lite mer bekant med Ruby on Rails. Jag har också kopplat till några riktigt bra ställen att hänvisa till när jag utvecklar med Rails. Ha kul kodning med Rails!

  • Railscasts påverkade av Ryan Bates är en fantastisk källa till videotutorials, och du kan alltid förvänta dig något bra.
  • Rails API är ett bra sätt att hitta mer information om ett ämne du kanske inte är helt säker på.

Följ oss på Twitter för fler dagliga webbutvecklingstoppar och artiklar.