Leer Ruby on Rails from Scratch week 2

Welkom bij Ruby on Rails From Scratch Week 2. Hopelijk helpt dit vervolg op week 1 je opleiding in Rails te verbeteren. Deze week doen we nog een beetje meer met het krijgen van een echte pagina. We zullen ook werken aan het toevoegen van meer interactiviteit door Ruby in te bedden in HTML en iets meer te leren over variabelen. Daarna zullen we meer te weten komen over Ruby's prachtige URL-structuur en hoe deze te manipuleren, plus nog andere dingen. Dit gaat absoluut een volle week worden!

Vorige week…

Vorige week hebben we het framework opgezet en iets meer geleerd over robijn en rails. We hebben toen geleerd hoe een nieuwe applicatie te maken en een controller te genereren.

Ruby-editors

Nu we Rails Syntax gaan gebruiken, hebben we een goede editor nodig. Omdat rails een relatief nieuw framework is, heeft het niet echt het bereik van door syntax ondersteunde editors. Gelukkig zijn er nog steeds buitengewoon goede exemplaren. Voor vensters gebruik ik persoonlijk E Texteditor. Het heeft geweldige ondersteuning voor ruby ​​en biedt geautomatiseerde scripts voor vele talen. E-teksteditor vertakt zich van het succes van het exclusieve mac-programma TextMate. Het enige nadeel van beiden is dat ze niet gratis zijn. Als u op zoek bent naar iets gratis, kunt u altijd kiezen voor het betrouwbare Kladblok ++.

Dingen zichtbaar krijgen

Een actie maken

Zoals je je misschien herinnert van vorige week, eindigden we met het maken van een controller die we hebben gebeld leren. Dit zal ons leiden naar de tutorial van vandaag. We gaan die controller nu gebruiken en een actie maken in de controller. We zullen dan ook een bijbehorend weergavebestand maken. De weergave is het onderdeel van de MVC-architectuur dat meestal alle HTML bevat en daarom een ingebed ruby-bestand (rhtml).

Nu we de leercontroller hebben gegenereerd, kunnen we het rb-bestand bekijken door naar te gaan app / controllers / learn_controller.rb. Op dit moment zou je de volgende code al moeten zien:

Met deze standaardcode kan deze controller de standaardtoepassingen van de toepassing overnemen.

We moeten nu een methode definiëren, specifiek een actie. Met deze actie wordt de URL voor de weergave in kaart gebracht. Om een ​​actie met de naam te definiëren meer, we typen de volgende code:

We kunnen elke gewenste naam kiezen. Een goede strategie bij het kiezen van de naam van de actie, is het een naam geven die te maken heeft met de inhoud die er zal zijn. U moet ook de naam kiezen op basis van de gewenste URL. De controller en actie brengen de URL in kaart. Als u bijvoorbeeld naar de "meer" -pagina wilt gaan, typt u in, localhost: 3000 / learn / more. Laten we het in feite eens proberen en zien wat er gebeurt:

Oeps ... zoals u kunt zien aan de hand van de nuttige foutmelding, moeten we nog steeds een weergave maken.

Een weergave maken

In tegenstelling tot de controller hoeven we deze niet via de console te genereren om een ​​weergave te maken. In plaats daarvan kunnen we eenvoudig een nieuw bestand maken. Toen we de controller ontwikkelden, leer je, heb je misschien gezien dat er een map (learn genoemd) werd aangemaakt in de app / view-map. We moeten daar een .rhtml-bestand aanmaken en het de actie noemen die we in de controller hebben gedefinieerd.

Een foto zegt meer dan duizend woorden, dus alsjeblieft:

En nu, gewoon om de pagina te testen, voegen we wat HTML toe en kijken we wat er gebeurt. Ik heb zojuist een standaard vereiste HTML toegevoegd en vervolgens wat dummy tekst en titel. Je kunt alles wat je wilt hier doen.

Sla het op en laat het opnieuw testen.

Geweldig het werkt! Gefeliciteerd, je hebt je eerste pagina in Rails gemaakt. Hoewel het niet veel nu is, heb je nu een basiskennis over hoe je een basisspoortoepassing kunt maken.

Een briefje

Ruby on Rails heeft enkele paradigma's die het volgt. Als u bijvoorbeeld een toepassing in rails bouwt, wanneer u een controller genereert, kapitaliseert u deze en maakt u deze uniek. Hoewel we de huidige controller waarmee we werken niet kapitaliseren, is het een goede gewoonte om erin te komen wanneer je echte applicaties aan het bouwen bent. Ik herinner me toen ik Rails voor het eerst leerde kennen, het frustreerde me dat alle tutorials die ik las, hier en daar een paradigma noemden, maar ze nooit allemaal op één plek hadden staan. Ik wil jou niet hetzelfde doen! Maar als ik ze nu allemaal uitlegde, zou het niet zo goed inzinken, alsof je meer wist over elk onderdeel. Maak je dus nu geen zorgen, en ik zal het later in deze serie uitleggen.

Interactiviteit toevoegen

Beoordeling

Vorige week leerden we hoe je railscode in een rhtml-bestand kunt embedden. Als je het onthoudt, <% -%> is verwerkte code, maar bevat niets dat daadwerkelijk wordt uitgevoerd naar de gebruiker. Anderzijds, <%= %> code zal worden uitgevoerd.

Wiskunde tijd

Je kunt eenvoudig wiskunde doen met robijn. Voor dit voorbeeld heb ik een nieuwe actie gemaakt in de leercontroller met de naam wiskunde. We gaan wat eenvoudige wiskunde doen die in bovenstaande tags wordt ingesloten. Dit is wat we zullen typen:


Math Demo Zal het 4 +5, of 9 uitvoeren?

Zoals je ziet, deed het de wiskunde voor ons:

String aaneenschakeling

U kunt een string in robijn creëren met behulp van aanhalingstekens. U kunt zelfs strings combineren door ze samen te voegen. Er zijn verschillende manieren om dit te doen. Het meest logische is om het te behandelen als wiskunde:

   String-demo   <%= 'This is kind of boring' %>
<%= 'Will I combine' + 'With You?' %>

Wanneer we dit uitvoeren, laten we zien hoe precies robijn is. Merk op dat er geen ruimte is tussen combineren en met. Voeg een spatie toe door er een toe te voegen vóór het citaat aan het einde van de combineer of eerder met.

Hoe belangrijk is het teken = en -?

Ze zijn allebei erg belangrijk. Ik vermeld dit nog een keer, dus je krijgt duidelijk hun doel. Het gelijkteken bepaalt of de gebruiker het ziet of niet. Als we dat laatste stukje code opnieuw zouden gaan bekijken en het gelijkteken van beide fragmenten zouden verwijderen, zouden we gewoon een lege pagina hebben. Nu, als u een variabele toewijst of iets dat fysiek niets uitvoert, plaats dan niet het = teken,

Het - teken is niet noodzakelijk, maar een goede gewoonte om erin te komen. Als u niet het = -teken gebruikt, plaatst u een -teken als u de ingesloten robijn sluit. Dit elimineert de witruimte die anders in de code zou worden ingevoegd. Dit kan in zeer zeldzame gevallen het project verpesten.

Variabelen

We kunnen niet verder gaan zonder variabelen te bespreken. Voor degenen die geen ervaring hebben met Javascript of een server-side taal, weet je misschien niet wat een variabele precies is. Beschouw een variabele als iets dat een klein beetje informatie opslaat. U kunt deze gegevens vervolgens analyseren en manipuleren door deze bij de naam ervan te noemen.

Een lokale variabele toewijzen en weergeven

Toewijzen van een lokale variabele is vrij eenvoudig. Hier is hoe je het zou toewijzen en het dan zou weergeven. Je zou dit op één regel kunnen doen, maar ik laat het verschil zien tussen embedded bewerkte robijn en ingesloten en getoonde robijn (het gelijkteken ding opnieuw :)):

   Variabele demo   <% text = 'This is a Variable' -%> <%= text %>  

En hier zie je het resultaat:

Een exemplaarvariabele toewijzen en weergeven

Het probleem met lokale variabelen is echter dat ze ... lokaal zijn. Wat als we een variabele in de controller moeten toewijzen en deze in de weergave moeten weergeven? Dat is waar instantievariabelen binnenkomen. Een instantievariabele wordt apart gezet van een lokale variabele door het @ -teken dat vóór de naam staat. Houd er rekening mee dat zowel exemplaar- als lokale variabelen (evenals de meeste andere soorten) geen hoofdletters en geen spaties kunnen bevatten.

Om aan te tonen hoe we dynamische inhoud tussen de controller en weergave kunnen doorgeven, moeten we eerst code in de leercontroller invoegen. Inmiddels heb ik meer definities toegevoegd voor alle bovenstaande demo's. Hier is de huidige leercontroller. Zoals je ziet, heb ik een instantievariabele toegewezen aan de actie variabelen. Wanneer de gebruiker om die actie vraagt, zoekt Rails de definitie op, verwerkt deze en stuurt deze naar de weergave (in dit geval de waarde van de variabele):

 klasse LearnController < ApplicationController def more end def math end def strings end def variables @text = 'Why Hello' end end

Nu gaan we in de weergave naar de variabele verwijzen:

   Variabele demo   <%= @text %>  

Natuurlijk, de variabele wordt doorgegeven aan de weergave.

Volgende week en laatste woorden

Deze week hebben we geleerd over het instellen van acties in controllers, het definiëren van views, lokale en directe variabelen. Ik hoop dat je het allemaal nuttig hebt gevonden! Volgende week wordt het nog spannender. Ik ben van plan om de basisprincipes van de interactie tussen de controller en weergave te voltooien. Hopelijk hebben we ook tijd om meer rails-technieken te leren! Daarna wordt het alleen maar spannender! (Ruby-syntaxis, werken met databases, steigers, enz.). Hoe dan ook, als je vragen hebt, laat het me dan weten; en ik kom zeker terug!

Zoals altijd, alstublieft Digg dit als het u heeft geholpen!

  • Abonneer u op de NETTUTS RSS-feed voor meer dagelijkse webontwikkelingen, tuts en artikelen.