Le basi della creazione e dell'utilizzo dei moduli in Rails

Rubino sui binari è un meraviglioso framework per applicazioni web full-stack open source che privilegia la convenzione rispetto alla configurazione.

Grazie ai componenti riutilizzabili e facilmente configurabili normalmente utilizzati per la creazione di applicazioni, la creazione di applicazioni in Rails è più rapida e semplice, con conseguente miglioramento della produttività e della crescita aziendale.

Sta guadagnando terreno tra gli sviluppatori poiché è flessibile, scalabile e facile per gli sviluppatori web scrivere e gestire applicazioni.

Rubino sui binari pone l'accento sull'utilizzo di modelli e principi ingegneristici noti al fine di ridurre il carico di lavoro durante la creazione di applicazioni web.

Anche se esistono diversi metodi per risolvere una sfida di programmazione, Ruby afferma di fare affidamento su modelli comunemente utilizzati che rendono i siti Web Rails più facili da mantenere e aggiornare.

Le librerie open source con blocchi più piccoli di codice Rails che risolvono problemi particolari vengono comunemente utilizzate per ridurre il sovraccarico di sviluppo.

Con l'aiuto di tali blocchi di codice, gli sviluppatori possono inserire gemme stabili e ben testate invece di perdere tempo a scrivere gli stessi tipi di codici. Uno degli strumenti più potenti nella cassetta degli attrezzi di un programmatore Ruby è il modulo.

I moduli forniscono una struttura per raccogliere classi, metodi e costanti di Ruby in un'unica unità denominata e definita separatamente.

Ciò è utile per evitare conflitti con classi, metodi e costanti esistenti e anche per poter aggiungere (mixare) la funzionalità dei moduli nelle tue classi.

Creazione di un modulo: scrivere un modulo è simile a scrivere una classe, tranne per il fatto che inizi la definizione con la parola chiave module anziché con la parola chiave class.

modulo Il mio primo modulo

sicuramente saluta_ciao

mette "Ciao"

FINE

FINE

Poiché non possiamo istanziare il modulo, per utilizzare il modulo dobbiamo estendere e includere il modulo in una classe.

include: mescola i metodi del modulo specificato come metodi di istanza nella classe di destinazione

extend: combina i metodi del modulo specificato come metodi della classe nella classe di destinazione

modulo ReusableModule

def metodo_modulo

inserisce "Metodo modulo: Ciao!"

FINE

FINE

classeClassThatIncludes

includere ReusableModule

FINE

classe ClassThatExtends

estendere ReusableModule

FINE

inserisce “Includi”

ClassThatIncludes.new.module_method # “Metodo del modulo: Ciao!”

mette “Estendi”

ClassThatExtends.module_method # "Metodo modulo: Ciao!"

============================================================

Altro punto sul modulo in Ruby:

1: ) Illustrare le basi della ricerca del metodo:

modulo M

rapporto definitivo

inserisce il “metodo 'report' nel modulo M”

FINE

FINE

classe C

includere M

FINE

classe D<C

FINE

oggetto = D.nuovo

obj.report

Produzione:

#=> metodo 'report' nel modulo M

Flusso di lavoro: Supponiamo che io sia un oggetto Ruby e che mi sia stato inviato il messaggio "report". Devo provare a trovare un metodo chiamato report nel mio metodo

percorso di ricerca. il report, se esiste, risiede in una classe o modulo.

Sono un'istanza di una classe chiamata D. D definisce un report del metodo di istanza?

NO.

D si mescola in qualche modulo?

NO.

La superclasse di D, C, definisce un metodo di istanza del report?

NO.

C si mescola in qualche modulo?

Si m.

M definisce un metodo di report?

SÌ.

Bene! Eseguirò quel metodo.

2:) Definire lo stesso metodo più di una volta:

Se definisci un metodo due volte all'interno della stessa classe, la seconda definizione ha la precedenza sulla prima. Lo stesso vale per i moduli.

modulo InterestBearing

def calcola_interesse

inserisce “Segnaposto! Siamo nel modulo InterestBearing."

FINE

FINE

classe Conto Bancario

includere il cuscinetto di interessi

def calcola_interesse

inserisce “Segnaposto! Siamo nella classe BankAccount."

inserisce "E stiamo sovrascrivendo il metodo calcola_interesse!"

FINE

FINE

conto = Contobancario.nuovo

conto.calcola_interesse

Produzione:

#=>Segnaposto! Siamo in classe BankAccount.

#=>E stiamo sovrascrivendo il metodo calcola_interesse!

3:) Miscelazione in due moduli con un metodo con lo stesso nome definito:

modulo M

rapporto definitivo

inserisce il “metodo 'report' nel modulo M”

FINE

FINE

modulo n

rapporto definitivo

inserisce il “metodo 'report' nel modulo N”

FINE

FINE

classe C

includere M

includere N

FINE

c = C.nuovo

c.report

Produzione:

#=> metodo report' nel modulo N

4:) Includere un modulo più di una volta

classe C

includere M

includere N

includere M

FINE

c = C.nuovo

c.report

#=> metodo report' nel modulo N

Flusso di lavoro:

Potresti aspettarti che quando esegui il metodo report, otterrai la versione di M, perché M era il modulo incluso più recentemente.

Ma includere nuovamente un modulo non fa nulla. Poiché M si trova già nel percorso di ricerca, la seconda istruzione di inclusione M non ha alcun effetto. N è ancora considerato il modulo incluso più recentemente:

5:) Risalendo il percorso di ricerca del metodo con super: all'interno del corpo della definizione di un metodo, puoi utilizzare la parola chiave super per passare alla definizione successiva più alta, nel percorso di ricerca del metodo, del metodo che stai attualmente esecuzione.

modulo M

rapporto definitivo

inserisce il “metodo 'report' nel modulo M”

FINE

FINE

classe C

includere M

rapporto definitivo

inserisce il “metodo 'report' nella classe C”

inserisce "In procinto di attivare il successivo metodo di rapporto di livello superiore..."

super

inserisce "Di ritorno dalla chiamata 'super'."

FINE

FINE

B

C

D

c = C.nuovo

c.report

#=> metodo 'report' nella classe C

Sto per attivare il successivo metodo di rapporto di livello superiore…

Metodo 'report' nel modulo M Di ritorno dalla chiamata 'super'.

RailsCarma ha lavorato su RoR sin dalla sua fase nascente e con una forte forza lavoro addestrata in RoR, è cresciuto fino a diventare un nome di grande fiducia nella consulenza end-to-end, architettura, costruzione, gestione ed estensione di Ruby on Rails ad aziende di tutto il mondo. 

Per saperne di più : 

Implementazione di TinyMCE in Ruby on Rails
Comprensione del plugin Asset Pipeline
Associazioni polimorfiche con record attivo
Un modo semplice per aumentare le prestazioni della tua app Rails

Mettiti in contatto con noi.

Iscriviti per gli ultimi aggiornamenti

Articoli correlati

Lascia un commento

Il tuo indirizzo email non sarà pubblicato. I campi obbligatori sono contrassegnati *

it_ITItalian