Einige Funktionen in meiner Rails-Anwendung sehen besser aus, als wäre es ein separates "Modul", auf das über require
zugegriffen werden soll. Angenommen, es ist eine Funktion zum Berechnen von Fibonacci-Zahlen.
Die Funktionalität ist unabhängig von der Rails-Anwendung und kann in anderen Projekten wiederverwendet werden, daher sollte sie nicht in der Nähe von Anwendungscontrollern und -modellen gespeichert werden, nehme ich an. Aber da ich es nicht in ein separates Projekt aufteilen werde, scheint es so, als ob es nicht in Ordnung wäre, es in vendor
Ordner zu platzieren.
Wo sollte ich es dann platzieren?
Der Platz, um wiederverwendbaren Code wie diesen zu platzieren, befindet sich im Verzeichnis lib
. Sie müssen jedoch require
nichts tun, da sich lib
bereits im Ladepfad befindet und dessen Inhalt während der Initialisierung geladen wird.
Wenn Sie eine vorhandene Klasse erweitern müssen, definieren Sie zuerst Ihr Modul und fügen es dann ein, indem Sie es als Nachricht an die Klasse senden, die Sie erweitern möchten, z.
%Vor% Ich werde oft Sachen in lib
einfügen, es stellt sich heraus, dass sich alles unter lib im Ladepfad befindet und nicht unbedingt require
d sein muss.
edit: Nach Steves Kommentar wurde das Bit entfernt, dass die Dateien benötigt werden. Auch entfernt ein paar erfordert von meinem Code: P
Tags und Links ruby-on-rails