Ich möchte Code teilen, der nicht mit Ansichten zwischen mehreren Controllern in meiner Rails-App zusammenhängt. Wo in der Verzeichnisstruktur sollte ich es platzieren?
BEARBEITEN: der fragliche Code, wenn etwas von allen Controllern verwendet wird, um wie sie die Modelldaten rendern
zu bestimmen Wenn der Code etwas wie Module mit Hilfsmethoden in diesen ist, könnte dies im Ordner lib
liegen. Alternativ könnten Sie eine gemeinsame Oberklasse für einige Ihrer Controller erstellen, wenn sie das Verhalten teilen.
Bitte posten Sie ein Beispiel für die Art von Code, an den Sie denken.
Ich habe Module in lib erstellt, um Code für andere Klassen bereitzustellen.
Hier ist ein abgekürztes Beispielmodul, das Werte für Ansichten definiert, die von verschiedenen Controllern instanziiert werden können.
%Vor%Um dies zu verwenden, fügen Sie einfach das Modul in Ihre Klasse ein:
%Vor%Der Hauptvorteil dieser Methode besteht darin, dass Ihr Controller-Verzeichnis sich auf Controller und Ihr Modellverzeichnis auf Logik konzentriert.
Ich persönlich denke, es ist in Ordnung, wenn sein Controller im Zusammenhang mit Ihrem Controller-Verzeichnis, sondern als ein Modul, z. app/controllers/what_am_i_module.rb
, da es für die Anwendung in Entwicklung spezifisch ist.
lib scheint mir ein Ort zu sein, an dem ich Framework / Core-Erweiterungen oder Affe-Patches platzieren würde, die für die Anwendung nicht spezifisch sind.
Tags und Links ruby ruby-on-rails model-view-controller