Sulautettu Ruby (ERB) 101: Aloittelijan opas dynaamiseen templatointiin Rubyssä

March 17, 2025

Oletko koskaan miettinyt, miten Ruby-kehittäjät sulauttavat dynaamisen logiikan saumattomasti HTML-malleihinsa? Tule mukaan Sulautettu Ruby (ERB), tehokas templating-moottori, jonka avulla voit upottaa Ruby-koodin suoraan HTML:ään, mikä mahdollistaa dynaamisten ja datapohjaisten verkkosivujen luomisen. Rakennatpa sitten yksinkertaista blogia tai monimutkaista verkkosovellusta, ERB on välttämätön työkalu, jolla voit Ruby-kehittäjät.

Tässä oppaassa käymme läpi ERB:n perusteet, aina sen syntaksista ja asetuksista käytännön esimerkkeihin ja parhaisiin käytäntöihin. Lopulta sinulla on vankka käsitys siitä, miten ERB:n avulla voit luoda dynaamisia ja ylläpidettäviä malleja Ruby-projekteihisi. Sukelletaan mukaan!

Mikä on sulautettu rubiini (ERB)?

Embedded Ruby eli ERB on templating-järjestelmä, jonka avulla voit kirjoittaa Ruby-koodia suoraan HTML-tiedostoihin. Tämä yhdistelmä mahdollistaa dynaamisen sisällön tuottamisen, kuten käyttäjäkohtaisten tietojen näyttämisen tai kohteiden luettelon iteroimisen. ERB-tiedostoilla on tyypillisesti .erb-pääte, ja Ruby-tulkki käsittelee niitä lopullisen HTML-tulosteen tuottamiseksi.

ERB:tä käytetään laajalti Ruby on Railsissa, jossa se toimii oletusarvoisena templating-moottorina näkymien renderöinnissä. Se ei kuitenkaan rajoitu vain Railsiin - ERB:tä voidaan käyttää missä tahansa Ruby-projektissa dynaamisten mallien luomiseen.

Miten ERB toimii?

ERB käyttää erityisiä erottimia erottaakseen Ruby-koodin HTML-koodista. Tässä on nopea erittely keskeisestä syntaksista:

: Suorittaa Ruby-koodia antamatta mitään tulosta.

Esimerkki: erb

<% if user_signed_in? %>
<p>Tervetuloa takaisin!</p>
<% end %>

: Suorittaa Ruby-koodia ja upottaa tuloksen malliin.
Esimerkki: erb

<h1>Hei, <%= @user.name %>!</h1>

: Lisää kommentteja, jotka jätetään huomiotta renderöinnin aikana.
Esimerkki: erb

<%# This is a comment and won't appear in the output %>

Näiden erottimien avulla voit sekoittaa Rubyn logiikkaa HTML:ään, mikä tekee malleistasi dynaamisia ja joustavia.

ERB:n määrittäminen Ruby-projektissa

ERB:n käyttäminen itsenäisessä Ruby-skriptissä on suoraviivaista. Näin pääset alkuun:

Vaadi erb-kirjasto:
rubiini

vaatia 'erb'

Luo ERB-malli:
erb


<h1>Tervetuloa, <%= @name %>!</h1>

Sitoo tiedot malliin ja renderöi se:
rubiini

@name = "Alice"
template = ERB.new(File.read('template.erb'))
output = template.result(binding)
laittaa tuotoksen

Ruby on Railsissa ERB on integroitu oletusarvoisesti, joten voit alkaa käyttää sitä heti näkymissäsi.

ERB:n tärkeimmät ominaisuudet

ERB:ssä on useita ominaisuuksia, jotka tekevät siitä tehokkaan templating-moottorin:

  • Osatekijät: Uudelleenkäytettävät mallit, jotka voidaan sisällyttää muihin näkymiin.
    Esimerkki: erb
    <%= render 'shared/header' %>
  • Layouts: Jaetut rakenteet (esim. otsikot, alatunnisteet), jotka kiertyvät näkymien ympärille.
    Esimerkki: erb
  • Avustajat: Ruby-metodit, jotka yksinkertaistavat monimutkaista logiikkaa malleissa.
    Esimerkki: ruby
    def format_date(date)
    date.strftime("%B %d, %Y"))
    end
  • HTML:n pakeneminen: Estää XSS-hyökkäykset puhdistamalla käyttäjän syötteen.
    Esimerkki: erb
    %>

Näiden ominaisuuksien ansiosta ERB on monipuolinen ja soveltuu monenlaisiin käyttötarkoituksiin.

ERB:n yleiset käyttötapaukset

ERB:tä käytetään yleisesti seuraavissa tilanteissa:

  • Dynaamiset verkkosivut: HTML-sisällön luominen käyttäjän syötteen tai tietokantakyselyjen perusteella.
  • Sähköpostimallit: Muokattavien sähköpostiasettelujen luominen dynaamisilla tiedoilla.
  • Määritystiedostot: Määritystiedostojen tai raporttien rakentaminen, joissa on sulautettua Ruby-logiikkaa.

Voit esimerkiksi käyttää ERB:tä luodaksesi luettelon tuotteista sähköisen kaupankäynnin sovelluksessa: erb


    <% @products.each do |product| %>
  • - $

  • <% end %>

Vinkkejä puhtaiden ERB-mallien kirjoittamiseen

Jos haluat pitää ERB-mallisi ylläpidettävinä ja tehokkaina, noudata näitä parhaita käytäntöjä:

  • Minimoi Ruby-logiikka malleissa: Siirrä monimutkainen logiikka apuohjelmiin tai ohjaimiin.
  • Käytä osittaislukuja: Jaottele suuret mallit pienempiin, uudelleenkäytettäviin osiin.
  • Vältä syvää pesimistä: Pidä ehtolausekkeet ja silmukat yksinkertaisina luettavuuden parantamiseksi.
  • Escape User Input: Puhdista aina käyttäjän syötteet tietoturva-aukkojen estämiseksi.

Esimerkiksi sen sijaan, että kirjoittaisit: erb

<% if @user.admin? %>
<p>Admin Dashboard</p>
<% else %>
<p>Käyttäjän kojelauta</p>
<% end %>

Voit siirtää logiikan apuohjelmaan: ruby

def dashboard_message(user)
user.admin? ? "Hallinnoijan kojelauta" : "Käyttäjän kojelauta"
end

Ja yksinkertaista mallia: erb

<p><%= dashboard_message(@user) %></p>

Esimerkki: Yksinkertaisen ERB-mallin rakentaminen

Käydään läpi käytännön esimerkki ERB-mallin luomisesta ja renderöinnistä:

Määritä Ruby-skripti, jossa on tietoja: ruby

vaatia 'erb'
@items = ['Omena', 'Banaani', 'Kirsikka']

Luo ERB-malli: erb


    <% @items.each do |item| %>

  • <% end %>

Renderöi malli: ruby

template = ERB.new(File.read('template.erb'))
laittaa template.result(binding)

Tuloste on: html


  • Apple

  • Banaani

  • Kirsikka

ERB vs. muut templating-moottorit

ERB on yksinkertainen ja aloittelijoille sopiva, mutta muut templating-moottorit kuten Haml, Slim ja Liquid tarjoavat erilaisia etuja:

  • Haml: Käyttää sisennyksiin perustuvaa syntaksia puhtaampien ja tiiviimpien mallien luomiseksi.
  • Slim: Samanlainen kuin Haml, mutta keskittyy minimalismiin ja suorituskykyyn.
  • Neste: Suunniteltu turvalliseen, hiekkalaatikkomuotoiseen templatointiin (esim. Shopifyssa).

ERB:n vahvuutena on sen yksinkertaisuus ja saumaton integroituminen Rubyyn, mikä tekee siitä erinomaisen valinnan aloittelijoille ja käyttäjille. Rails-kehittäjät.

Johtopäätös

Embedded Ruby (ERB) on tehokas mutta yksinkertainen työkalu, joka kuroo umpeen kuilun Ruby-logiikan ja HTML:n välillä ja on siten olennainen osa Ruby-ekosysteemiä. Olipa kyse dynaamisten verkkosivujen rakentamisesta, sähköpostimallien laatimisesta tai konfiguraatiotiedostojen luomisesta, ERB tarjoaa joustavuutta ja yksinkertaisuutta, joita tarvitaan ideoiden toteuttamiseen.

Kun sukellat syvemmälle Ruby-kehitys, ERB:n hallitseminen antaa sinulle mahdollisuuden luoda dynaamisempia, ylläpidettävämpiä ja skaalautuvampia sovelluksia. Miksi et siis alkaisi kokeilla ERB:tä jo tänään? Rakenna pieni projekti, säädä joitakin malleja ja katso, miten ERB voi muuttaa työnkulkuasi.