Välkommen till Ruby on Rails From Scratch Week 2. Förhoppningsvis kommer den här uppföljaren till vecka 1 att hjälpa dig att fortsätta din utbildning i Rails. Den här veckan gör vi lite mer med att få en verklig sida igång. Vi arbetar också med att lägga till mer interaktivitet genom att inbädda rubin i HTML och lära lite om variabler. Efter det lär vi oss mer om Rubys vackra URL-struktur och hur man manipulerar det, plus andra saker också. Detta kommer definitivt att bli en packad vecka!
Förra veckan fick vi ramverket inrättat och lärde oss lite mer om rubin och rails. Vi lärde oss sedan hur man skapar en ny applikation och genererar en kontroller.
Nu när vi ska komma in i Rails Syntax behöver vi en bra redaktör. Eftersom rails är en relativt ny ram har den inte ganska många syntaxstödda redaktörer. Lyckligtvis finns det fortfarande extremt bra där ute. För Windows använder jag personligen E Textreditor. Den har bra stöd för rubin och har automatiska skript för många språk. E textredigerare förgrenad av framgången med det exklusiva mac-programmet TextMate. Den enda nackdelen med båda är att de inte är lediga. Om du letar efter något gratis, kan du alltid gå med den tillförlitliga Notepad ++.
Som du kanske kommer ihåg från förra veckan slutade vi med att skapa en kontroller som vi ringde lära sig. Detta leder oss till dagens handledning. Vi ska nu använda den kontrollen och skapa en åtgärd i kontrollenheten. Vi kommer då också skapa en motsvarande visningsfil. Vyn är komponenten av MVC-arkitekturen som vanligtvis innehåller all HTML, och är därför en inbäddad rubinfil (rhtml).
Nu när vi har skapat lärarkontrollern kan vi se rb-filen genom att gå till app / controllers / learn_controller.rb. Just nu bör du se följande kod redan där:
Denna standardkod låter den här regulatorn erva i standardprogramkontrollerna.
Vi behöver nu definiera en metod, speciellt en åtgärd. Denna åtgärd kartlägger URL-adressen för vyn. För att definiera en åtgärd som heter Mer, vi skriver följande kod:
Vi kan välja vilket namn vi vill ha. En bra strategi när man pekar på namnet på åtgärden, ger det ett namn som har att göra med innehållet som kommer att finnas där. Du bör också välja namnet enligt önskad webbadress. Kontrollenheten och åtgärdskartan visar URL-adressen. Till exempel, för att komma till "mer" sidan, skulle du skriva in, localhost: 3000 / learn / more. Faktum är att vi ska prova det och se vad som händer:
Oj ... som du kan se från det hjälpsamma felmeddelandet behöver vi fortfarande se en vy.
Till skillnad från regulatorn, för att skapa en vy behöver vi inte generera den via konsolen. I stället kan vi helt enkelt skapa en ny fil. När vi genererade regulatorn, lär du dig att du kanske har sett att en katalog (kallad lärande) skapades i app / visa-mappen. Vi måste skapa en .rhtml-fil inuti, och kalla den åtgärden som vi definierade i regulatorn.
En bild är värd tusen ord, så här går du:
Och nu, för att testa sidan, lägger vi till lite HTML och ser vad som händer. Jag har bara lagt till en grundläggande krävs HTML, och sedan lite dummy text och titel. Du kan lägga allt du vill här.
Spara det och låt oss testa det igen.
Bra det fungerar! Grattis, du skapade din första sida i Rails. Även om det inte är så mycket nu har du nu en grundläggande förståelse för hur man skapar en grundläggande railsapplikation.
Ruby on Rails har några paradigmer som följer. Till exempel, när du bygger en applikation i skenor, när du genererar en kontroller, aktiverar du det och gör det singulärt. Även om vi inte kapitaliserar den nuvarande controller som vi jobbar med, är det en bra vana att komma in när du bygger riktiga applikationer. Jag kommer ihåg när jag lärde mig Rails för första gången, det frustrerade mig att alla handledningar jag läste nämnde ett paradigm här och där men aldrig listade dem alla på ett ställe. Jag vill inte göra detsamma för dig! Men om jag förklarade dem alla nu skulle det inte sjunka in så bra som om du visste mer om varje komponent. Så oroa dig inte för det för mycket nu, och jag kommer att förklara det senare i denna serie.
Recension
Förra veckan lärde vi oss att integrera skenor i en rhtml-fil. Om du kommer ihåg, a <% -%> bearbetas kod, men innehåller inte något som faktiskt kommer att utföras till användaren. Å andra sidan, <%= %> kod kommer att utfärdas.
Matte tid
Du kan enkelt göra matte med rubin. I det här exemplet skapade jag en ny åtgärd i lärarkontrollen som heter matte. Vi ska göra lite enkel matte som kommer att läggas in i taggarna ovanför. Här är vad vi ska skriva:
Math Demo Kommer det att mata ut 4 +5 eller 9?
Som du kan se gjorde det matte för oss:
Stringkompatibilitet
Du kan skapa en sträng i rubin genom att använda citat. Du kan även kombinera strängar tillsammans genom att sammanfatta dem. Det finns flera sätt att göra detta. Det mest logiska är att behandla det som matematik:
String Demo <%= 'This is kind of boring' %>
<%= 'Will I combine' + 'With You?' %>
När vi producerar detta visar vi hur exakt rubin är. Observera att det inte finns något mellanslag mellan kombinera och med. För att lägga till ett mellanslag, lägg bara till en före citatet i slutet av kombinera eller före med.
De är båda mycket viktiga. Jag nämna detta igen, så du får tydligt deras syfte. Liknande tecken bestämmer om användaren ser det eller inte. Om vi skulle återkomma den sista koden och ta ut lika tecken från båda snippets, skulle vi bara ha en tom sida. Nu, om du tilldelar en variabel eller något som inte fysiskt matar ut någonting, sätt inte = tecknet,
Tecknet är inte nödvändigt, men en bra vana att komma in i. Om du inte använder = tecknet, lägg sedan ett - tecken när du stänger den inbäddade rubyen. Detta eliminerar det vita utrymmet som annars skulle införas i koden. Detta kan i mycket sällsynta fall rota upp projektet.
Vi kan inte gå längre utan att diskutera variabler. För dem som inte har någon erfarenhet av Javascript, eller vilket språk på serverns sida, kanske du inte vet vad exakt en variabel är. Tänk på en variabel som något som lagrar lite information. Du kan sedan analysera dessa data och manipulera det genom att ringa det med namnet.
Tilldela en lokal variabel och visa den
Tilldela en lokal variabel är ganska lätt. Så här kan du tilldela den och visa den. Du kan göra detta i en rad, men jag visar skillnaden mellan inbäddad bearbetad rubin och inbäddad och visad rubin (likartat saken igen :)):
Variabel demo <% text = 'This is a Variable' -%> <%= text %>
Och här kan du se resultatet:
Tilldela en instansvariabel och visa den
Problemet med lokala variabler är dock att de är ... lokala. Vad händer om vi behöver tilldela en variabel i kontrollenheten och visa den i vyn? Det är där instansvariabler komma in. En instansvariabel är inställd från en lokal variabel av @ -tecken som sätts före namnet. Observera att både förekomst och lokala variabler (såväl som de flesta andra slag) inte får ha stora bokstäver och inga mellanslag.
För att visa hur vi kan skicka dynamiskt innehåll mellan kontrollenheten och visa måste vi först sätta in koden i lärarkontrollern. Hittills har jag lagt till fler definitioner för alla ovanstående demos. Här är den nuvarande lärokontrollen. Som du kan se har jag tilldelat en instansvariabel i variabelåtgärden. När användaren begär den åtgärden ser Rails upp definitionen, bearbetar den och skickar den till vyn (i detta fall värdet av variabeln):
klass LearnController < ApplicationController def more end def math end def strings end def variables @text = 'Why Hello' end end
Nu ska vi referera till variabeln i vyn:
Variabel demo <%= @text %>
Visst nog, överföres variabeln till vyn.
I veckan lärde vi oss att inrätta åtgärder i kontroller, definiera vyer, lokala och omedelbara variabler. Jag hoppas att du tyckte allt var bra! Nästa vecka blir det ännu mer spännande. Jag planerar att slutföra grunderna för växelverkarens interaktion och visning. Förhoppningsvis kommer vi också ha tid att lära oss mer skenor tekniker också! Därefter blir det bara mer spännande! (Ruby syntax, arbetar med databaser, byggnadsställningar, etc.). Hur som helst, om du har några frågor, var god och låt mig veta det. och jag kommer vara säker på att komma tillbaka till dig!
Gilla alltid, snälla Digg detta om det hjälpte dig!