Die Grundlagen zum Erstellen und Verwenden von Modulen in Rails

Ruby auf Schienen ist ein wunderbares Open-Source-Full-Stack-Webanwendungs-Framework, das Konventionen gegenüber Konfiguration bevorzugt.

Mit wiederverwendbaren, leicht konfigurierbaren Komponenten, die normalerweise zum Erstellen von Anwendungen verwendet werden, ist das Erstellen von Anwendungen in Rails schneller und einfacher, was zu einer verbesserten Produktivität und einem höheren Geschäftswachstum führt.

Es erfreut sich bei Entwicklern wachsender Beliebtheit, da es flexibel und skalierbar ist und Webentwicklern das Schreiben und Warten von Anwendungen erleichtert.

Ruby auf Schienen legt Wert darauf, bekannte technische Muster und Prinzipien zu verwenden, um den Arbeitsaufwand beim Erstellen von Webanwendungen zu reduzieren.

Auch wenn es mehrere Methoden gibt, eine Programmierherausforderung zu lösen, gibt Ruby an, dass es sich auf häufig verwendete Muster verlässt, was die Wartung und Aktualisierung von Rails-Websites erleichtert.

Open-Source-Bibliotheken mit kleineren Rails-Codeblöcken zur Lösung bestimmter Probleme werden häufig verwendet, um den Entwicklungsaufwand zu reduzieren.

Mit Hilfe solcher Codeblöcke können Entwickler stabile, gut getestete Gems einfügen, anstatt Zeit mit dem Schreiben der gleichen Codearten zu verbringen. Eines der leistungsstärksten Werkzeuge im Werkzeugkasten eines Ruby-Programmierers ist das Modul.

Module bieten eine Struktur zum Sammeln von Ruby-Klassen, -Methoden und -Konstanten in einer einzigen, separat benannten und definierten Einheit.

Dies ist nützlich, damit Sie Konflikte mit vorhandenen Klassen, Methoden und Konstanten vermeiden und die Funktionalität von Modulen in Ihre Klassen einfügen (einmischen) können.

Erstellen eines Moduls: Das Schreiben eines Moduls ähnelt dem Schreiben einer Klasse, außer dass Sie Ihre Definition mit dem Schlüsselwort module anstelle des Schlüsselworts class beginnen.

Modul MyFirstModule

auf jeden Fall say_hello

sagt „Hallo“

Ende

Ende

Da wir das Modul nicht instanziieren können, müssen wir es zur Verwendung des Moduls erweitern oder in eine Klasse einbinden.

include: mischt angegebene Modulmethoden als Instanzmethoden in die Zielklasse ein

verlängern: mischt angegebene Modulmethoden als Klassenmethoden in der Zielklasse ein

Modul WiederverwendbaresModul

def module_method

setzt „Modulmethode: Hallo!“

Ende

Ende

Klasse ClassThatIncludes

schließe das wiederverwendbare Modul ein

Ende

Klasse ClassThatExtends

Wiederverwendbares Modul erweitern

Ende

setzt „Include“

ClassThatIncludes.new.module_method # „Modulmethode: Hallo!“

setzt „Extend“

ClassThatExtends.module_method # „Modulmethode: Hallo!“

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

Anderer Punkt zum Modul in Ruby:

1: ) Veranschaulichung der Grundlagen der Methodensuche:

Modul M

auf jeden Fall Bericht

fügt die „'report'-Methode in Modul M“ ein

Ende

Ende

Klasse C

Dazu gehört M

Ende

Klasse D < C

Ende

obj = D.neu

obj.bericht

Ausgabe:

#=> 'Report'-Methode im Modul M

Arbeitsablauf: Angenommen, ich bin ein Ruby-Objekt und mir wurde die Nachricht „Bericht“ gesendet. Ich muss versuchen, in meiner Methode eine Methode namens Report zu finden

Suchpfad. Der Bericht befindet sich, falls vorhanden, in einer Klasse oder einem Modul.

Ich bin eine Instanz einer Klasse namens D. Definiert D einen Instanzmethodenbericht?

NEIN.

Mischt sich D in irgendwelche Module ein?

NEIN.

Definiert die Superklasse von D, C, eine Berichtsinstanzmethode?

NEIN.

Mischt sich C in irgendwelche Module ein?

Ja m.

Definiert M eine Berichtsmethode?

Ja.

Gut! Ich werde diese Methode ausführen.

2:) Dieselbe Methode mehr als einmal definieren:

Wenn Sie eine Methode zweimal innerhalb derselben Klasse definieren, hat die zweite Definition Vorrang vor der ersten. Dasselbe gilt auch für Module.

Modul InterestBearing

auf jeden Fall berechne_zins

setzt „Platzhalter! Wir sind im Modul InterestBearing.“

Ende

Ende

Klasse BankAccount

enthalten InterestBearing

auf jeden Fall berechne_zins

setzt „Platzhalter! Wir sind in der Klasse „Bankkonto“.

setzt „Und wir überschreiben die Methode „calcute_interest“!“

Ende

Ende

account = BankAccount.new

account.calculate_interest

Ausgabe:

#=>Platzhalter! Wir sind in der Klasse BankKonto.

#=>Und wir überschreiben die Methode „calcture_interest“!

3:) Mischen in zwei Modulen mit einer gleichnamigen Methode definiert:

Modul M

auf jeden Fall Bericht

fügt die „'report'-Methode in Modul M“ ein

Ende

Ende

Modul N

auf jeden Fall Bericht

fügt die „'report'-Methode in Modul N“ ein

Ende

Ende

Klasse C

Dazu gehört M

N einschließen

Ende

c = C.neu

c.bericht

Ausgabe:

#=> Report'-Methode im Modul N

4:) Ein Modul mehr als einmal einbinden

Klasse C

Dazu gehört M

N einschließen

Dazu gehört M

Ende

c = C.neu

c.bericht

#=> Report'-Methode im Modul N

Arbeitsablauf:

Sie könnten davon ausgehen, dass Sie beim Ausführen der Berichtsmethode die Version von M erhalten würden, da M das zuletzt enthaltene Modul war.

Aber das erneute Einbinden eines Moduls bringt nichts. Da M bereits im Suchpfad liegt, hat die zweite Anweisung „include M“ keine Auswirkung. N gilt immer noch als das zuletzt aufgenommene Modul:

5:) Mit super im Methodensuchpfad nach oben gehen: Innerhalb des Hauptteils einer Methodendefinition können Sie das Schlüsselwort super verwenden, um zur nächsthöheren Definition im Methodensuchpfad der Methode zu springen, in der Sie sich gerade befinden ausführen.

Modul M

auf jeden Fall Bericht

fügt die „'report'-Methode in Modul M“ ein

Ende

Ende

Klasse C

Dazu gehört M

auf jeden Fall Bericht

fügt die „'report'-Methode in Klasse C“ ein

setzt „Wird im Begriff, die nächsthöhere Berichtsmethode auszulösen…“

super

setzt „Zurück vom ‚Super‘-Anruf.“

Ende

Ende

B

C

D

c = C.neu

c.bericht

#=> 'report'-Methode in Klasse C

Die nächsthöhere Berichtsmethode wird gerade ausgelöst …

'report'-Methode in Modul M Zurück vom 'super'-Aufruf.

SchienenCarma hat von Anfang an an RoR gearbeitet und sich mit einer starken Belegschaft, die in RoR geschult ist, zu einem äußerst vertrauenswürdigen Namen für umfassende Ruby on Rails-Beratung, Architektur, Aufbau, Management und Erweiterung für Unternehmen auf der ganzen Welt entwickelt. 

Mehr lesen : 

Implementierung von TinyMCE in Ruby on Rails
Grundlegendes zum Asset-Pipeline-Plugin
Polymorphe Assoziationen mit aktivem Datensatz
Eine einfache Möglichkeit, die Leistung Ihrer Rails-App zu steigern

Nehmen Sie Kontakt mit uns auf.

Abonnieren Sie die neuesten Updates

zusammenhängende Posts

Hinterlasse einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert

de_DEGerman