Lär Ruby on Rails från början Vecka 1

Ruby on Rails ... nu har de flesta hört hype om det. Det lovar mer effektiv kod, total objektorientering och sant MVC-arkitektur minst sagt. Såvitt min egen personliga erfarenhet har det varit allt det och mer. Koden är vacker, lätt att underhålla och redigera. I ett aktuellt projekt som jag arbetade på tog det mig mindre än 10 timmar att göra ansökan, jämfört med minst dubbelt så om jag skrev i PHP.

Jag har hört många webbutvecklare som känner till andra språk, vanligtvis ASP eller PHP, som vill lära Ruby on Rails, men vet bara inte var de ska komma igång. Från personlig erfarenhet vet jag att det är väldigt annorlunda än PHP. Personligen lärde jag mig Ruby on Rails mindre än ett år sedan, och har haft några till inga problem med det hittills. Om du inte redan har det, rekommenderar jag starkt att du hoppas ombord med upp och kommande webbramar, Ruby on Rails!

Uppdragsbeskrivning

I den här serien av handledning hoppas jag få dig från att veta ingenting om Ruby on Rails (om det är sant), att kunna skriva fullt utrustade webbapplikationer i den. Jag kommer ihåg hur det var att lära mig det. Jag kunde inte hitta några serier av handledningar som tog dig igenom alla väsentliga saker i vanlig engelska och i en ordning som var till nytta för mig, eleven. Även om det finns mycket bra resurser där ute, måste de kombineras med andra också. I botten av denna handledning kommer jag också att lista resurser som jag har hittat användbart även i det förflutna.

Denna serie kommer att likna PHP från scratch-serien, men med Ruby on Rails. Det kommer att finnas en publicerad varje vecka, gradvis att bli mer avancerad.

Denna handledning

Jag varnar dig, den här första handledningen kan vara lite torr, men det är nödvändigt att lära sig RoR (låt oss bara kalla det det från och med nu!). Den här veckan kommer vi att täcka inrättandet av ramverket och webbservern samt hur ramverket fungerar. Vi ska ställa den nödvändiga grunden för att lära oss RoR. Det är här många webbutvecklare som vill lära sig RoR misslyckas. Jag lovar att vi kommer göra mycket mer spännande saker nästa gång!

Vad är Ruby?

Ruby är det språk som ramskenorna sträcker sig. Det är väldigt objektorienterat. Det är syntaxen inspirerad av Perl, och är därför mycket lika. Det liknar också Python, Lisp, Dylan och CLU. Att citera Wikipedia:

 "Ruby var tänkt den 24 februari 1993 av Yukihiro Matsumoto som ville skapa ett nytt språk som balanserade funktionell programmering med absolut nödvändig programmering. Enligt Matsumoto ville han ha ett skriptspråk som var kraftfullare än Perl och mer objektorienterat än Python . Därför bestämde jag mig för att utforma mitt eget språk "."

Det var mest populärt i Japan, det var tills ramarna Rails kom ut. Sedan dess har den fortsatt att växa i en fenomenell takt överallt.

Vad är Rails?

Rails är den kända ramen som fungerar av rubin. Det är användarbasen ständigt växer. Utvecklat av David Heinemeier Hansson av 37signals för basecamp, släpptes den som öppen källkod i juli 2004. Den använder MVC (Model - View - Controller) arkitektur. Om du vill ha en borste upp på MVC, var noga med att kolla in MVC-handledningen. Den senaste versionen är 2.1.0. Det fanns några signifikanta förändringar i v2. Detta inkluderar den berömda ställningsfunktionen i v1. Det har ändrats lite i version 2.

Begrepp av Ruby på Rails

Ruby on Rails följer flera principer för att hålla koden slank och ren. Du bör försöka leva med dessa principer medan du arbetar med RoR för att få ut det mesta av det. För en följer den Agile programmeringsperioden för Torka (repetera inte dig själv). Det betyder självklart att du bara skriver din kod en gång i en viss konsekvent plats. Till exempel, om du behöver koden för att göra en viss sak, så lägger du den på en viss plats varje gång.

Det andra konceptet som RoR följer är CoC (konventioner över konfiguration).Det här betyder ganska mycket att rubin förutsätter mycket, och förklarar de flesta av de automatiska standardvärdena så får du se Ruby generera för oss. I stället för att du alltid behöver konfigurera allt, i varje enskilt projekt, gör rubin automatiskt det för dig. Om du vill göra någonting som är okonventionellt överväger du helt enkelt de förnuftiga standardvärdena som RoR redan har på plats. Detta leder generellt till mindre kod måste skrivas.

Fördelar med Learning Ruby on Rails:

  • Det är ganska lätt att lära sig jämfört med andra språk
  • Helt objektorienterad
  • MVC Arkitektur
  • Du behöver inte skriva så mycket kod
  • Mycket förlängbar
  • Öppen källa
  • Gemenskapen är oerhört användbar för att svara på frågor
  • Trots att det är en relativt ny ram, är den ganska helt utrustad och har väldigt få buggar.

Nackdelar med Ruby:

  • Bearbetas olika, så koden kan vara lite långsammare på servrar som inte är riktigt byggda för att hantera rubinkod

Jag har bara hört detta krav, men fler och fler servrar blir bättre utrustade för Rails eftersom det fortsätter att växa ändå så det blir mindre och mindre av ett problem.

En Ruby-fil

En rubinfil har förlängningen av .rb. Dessa filer innehåller vanligtvis ingen HTML. Detta är ett utdrag av en rubinfil (speciellt en kontroller) från en spelmotor som jag nyligen gjorde. Som du kanske kan se. Den drar data från en databas och listar spel enligt variablerna kategori och titel:

klass GameController < ApplicationController def game_list
@title = '3'
@category = 'Action'
@games = Game.find (: all,
: conditions => ["title LIKE? OCH kategori =?", "%" + titel + '%', kategori],
: order => 'titel, kategori ASC',
: gräns => 5,: offset => 0)
änden

En inbäddad Ruby File

Liksom många andra webb språk låter Rails dig lägga in rubin med HTML. Seki Masatoshi skrev ett program som heter ERb, inbäddad rubin, som skannar alla .rhtml-filer (inbäddade rubinfiler), tills den kommer över antingen <% Ruby Code that is only processed -%> eller <%= Ruby Code that is then outputted %>. Den bearbetar sedan rubinkoden och fyller i ämnet om det behövs.

Här är ett exempel på Embedded Ruby:

<% title = "Nettuts" %>
<% header_text = "Ruby on Rails Tutorial" %>


<%= title %>


<%= header_text %>


Detta är ett exempel på en .rhtml-sida.



Så här får användaren det:

 

Nettuts


Ruby on Rails Tutorial


Detta är ett exempel på en .rhtml-sida.




Installera Ruby on Rails för Windows

Windows och OSX användare är båda mycket turna. Båda operativsystemen får ett allt-i-ett installationsprogram / chefprogram som installerar rubin, rails och servern. För Windows har du möjlighet att direktrapportera. Gå till http://instantrails.rubyforge.org/wiki/wiki.pl för att ladda ner den. Jag har personligen använt det här och har inte haft några stora problem med det. Stötta mig, det är mycket lättare att göra detta och installera sedan allt separat.

Klicka på hämta för att få direktrapporter.

När du klickar på nedladdning kommer du att omdirigeras till rubyforge.org. Där kan du välja den senaste versionen. Vid tidpunkten för detta skrivande var 2,0 den senaste. Också vid tidpunkten för det här skrivandet stöddes många populära värdar som stödde rubin, bara stödde 1.8.x-versionen. Det finns stora skillnader mellan version 1 och 2. Så det är upp till dig vilken version du vill installera. I den här handledningen hämtar jag version 2.0.

Nu när den hämtas, extraheras den till en katalog som inte innehåller några mellanslag.

Installera Ruby på Rails för andra operativsystem

OSX har också lyckan att ha en allt i en Ruby on Rails manager, lokomotiv. För OSX och andra operativsystem kan du hitta en mycket bra resurs på Ruby on Rails wiki.

Komma igång med ramverket

Från och med nu ska jag använda Instant Rails. Det skiljer sig inte mycket från någon annan inställning, så om du använder en annan teknik borde du fortfarande kunna följa med dig enkelt. Om du stöter på några problem, var noga med att meddela mig i kommentarerna och / eller kolla in resurserna.

Så nu har du alla filer som behövs för installationen. Börja med det! För Windows, gå till katalogen du lägger Instant Rails, och kör InstantRails.exe. Du kommer förmodligen att få det här meddelandet, men för din katalog, som du kan trycka på "ja" för:

Nu när Instant Rails körs kan du göra flera saker. Just nu behöver du bara kunna:

- Öppna ett konsolfönster

-Skapa ett nytt projekt.

- Starta servern för ett pågående projekt

Vi går igenom varje åtgärd separat.

Öppna ett konsolfönster

1) Klicka på den övre vänstra ikonen:

2) Gå till "Rails Applications"> "Öppna Ruby Console Window"

3) Vi har nu ett konsolfönster öppet. Här kan du göra många saker i ruby ​​som att generera nya projekt, kontroller och andra uppgifter som vi kommer att täcka senare. Nu ska vi använda det här konsolfönstret för att skapa en ny applikation.

Skapa en ny applikation

1) Nu ska vi skriva in "rails nettuts", där netts är namnet på din ansökan. Välj namnet noggrant, eftersom du använder det för resten av programmet. Eftersom vi inte gör något speciellt än, väljer vi bara nätbutiker som vårt namn:

2) Det kommer nu generera alla nödvändiga filer för ansökan. Det här är de filer som ramverket använder och behöver. Det hjälper till att ge CoC (konventioner över konfiguration).

3) Vi har nu en Ruby on Rails applikation genererad!

Köra ett program

1) För att köra vår applikation måste vi gå till Instant Rails och klicka på ikonen igen:

2) Sedan går vi till "Rails Applications"> "Manage Rails Applications ..."

2) Du kan se Instant Rails-fartyg med två projeter redan. Kokboken är en ganska snygg demonstration av vad du enkelt kan göra med Rails. Jag uppmanar dig starkt att kolla in det. Och sedan läser du lite om Rails, kolla källkoden. Du kommer att bli förvånad över enkelheten! Hur som helst, markera rutan bredvid nät och klicka på "Start med Mongrel". Din brandvägg kan motsätta sig, men tillåta det. Ett konsolfönster ska dyka upp med portnummer och annan användbar information:

Så i mitt fall (och förmodligen även din) kan vi se vår ansökan på port 3000. Så bara navigera till 127.0.0.1:3000, och du borde få den här standardrapporteringssidan (plus sidofältet till höger):

Vi kan nu börja bygga vår ansökan!

Hur ramverket fungerar

MVC Arkitektur

Rails går av MVC Architecture. I grund och botten betyder det att vi bryter upp vår kod i tre avsnitt; modellen, vyn och styrenheten. Om du vill lära dig mer om MVC Architecture, var noga med att besöka webbsidan för Webuts MVC-introduktion. I detta intro till Ruby on Rails, täcker vi bara kontrollenhetens grunder:

Controller

Kontrollern kommer att vara sökvägen efter huvudadressen. Om vi ​​till exempel har en controller som heter "lär", skulle den representera yoursite.com/learn eller lokalt 127.0.0.1:3000/learn . Varje kontroller är beroende av många specifika filer, för att skapa en kontroller behöver du generera den via konsolen. Vi ska nu skapa en ny controller, lära:

1) Först öppnar vi ett konsolfönster via Instant Rails, eller vilken konfiguration du använder.

2) Nästa navigerar vi till den aktuella applikationen. Eftersom vi för närvarande är en nivå ovanför vår ansökan skriver vi in ​​"cd-nät" (ändra katalog till nät).

3) Nu när vi är i ansökan måste vi komma åt ett skript som kommer att generera kontrollenheten. Om du granskar filstrukturen i appen märker du att det finns en skriptmapp. Och inuti skriptmappen finns en genereringsfil. Vi måste rikta det och köra det.

4) Vi riktar oss mot det via konsolen. Lägg märke till de andra skripten, de har alla sina syften. Hur som helst, i Windows skriver du in "Ruby Script / Generate Controller Learn" för att generera en kontroller som heter Lärande. Om jag minns rätt behöver du inte rubin i andra operativsystem. Konsolen kommer nu att generera några filer. Kolla in dessa i ett utforskningsfönster om du vill. De två viktigaste filerna här är regulatorläraren, som bara var en av flera skapade filer; men märker också att en syn som kallas lärdes skapades också. Det här är förnuftiga standardvärden det här spåret kommer med för att begränsa antalet arbeten.

Så hur fungerar en kontroller?

Nåväl, låt oss ta det steg för steg.

-Användaren begär din webbplats / learn

-Rails ser automatiskt ut i serverns katalog för app / learn_controller

-Rails söker efter .rb-filen för en indexfils definition

-Rails gör vad definitionen säger att den ska göra, och skapar eller omdirigerar till en vy.

-Denna vy (lär) skickas sedan tillbaka till användaren.

Oroa dig inte om det inte är helt meningslöst. Nästa handledning kommer vi att gå mer djupt i kontrollerare. För just nu, var bara bekant med hur man skapar en kontroller och att de finns.

Medel

  • Lynda.com: Ruby on Rails Essential Training

    Ruby on Rails syftar till att göra byggnadens webbapplikationer enklare. I Ruby on Rails Essential Training, expertinstruktör Kevin Skoglund fokuserar på samma mål. Kevin förklarar den fullständiga processen - från att förstå de grundläggande begreppen bakom alla Ruby on Rails-projekt för att skapa fullfjädrada, lättanvända applikationer med Ruby on Rails-ramverket.

    Besök artikeln

  • Tutorials Point Ruby on Rails Series

    Det här är en otrolig serie av Ruby on Rails tutorial, som täcker mycket, men det är ibland svårt att följa.

    Besök artikeln

  • Ruby on Rails

    Detta är Rails officiella webbplats. Om du vill bli upphetsad om Rails, gå här! Här kan du hämta den senaste versionen, få de senaste nyheterna och hitta några andra resurser för att lära Rails.

    Besök artikeln

  • Rails Wiki

    Detta är en annan stor resurs. När du har blivit nästa Rails ninja kan du till och med vara tvungen att redigera en del av informationen här!

    Besök artikeln

Var noga med att kolla in så många av dessa resurser innan nästa handledning.

Nästa vecka och sista ord

Jag hoppas att du kunde överleva genom all den informationen. Lita på mig, du kommer att vara glad att du gjorde det. Var säker på att du får den övergripande greppet om denna handledning. När vi fortsätter kommer de flesta av dina frågor att besvaras, och du kommer att börja känna dig mer "upplyst", på vad Rails är. Och jag lovar nästa vecka blir roligare! Nästa vecka kommer vi att täcka lite mer av ramverket och börja komma in i rubinsyntax och lite mer av vad du kan göra med skenor. Om denna handledning hjälpte dig, var god och snygg dig!

  • Prenumerera på NETTUTS RSS-flödet för fler dagliga webbutvecklingstoppar och artiklar.