Wie kann ich alle Modelle in meiner Rails-App durchlaufen?

8

Ich würde gerne in der Lage sein, alle Modelle in meiner Rails-App zu durchlaufen und zu inspizieren. In Pseudo-Code würde es etwa so aussehen:

%Vor%

Meine Frage ist, wie überprüfe ich meine Rails App, um eine Sammlung der Modelle (rails_env.models) zu bekommen?

    
James 01.05.2010, 23:11
quelle

5 Antworten

9

Ähnlich wie bei nathanvdas Antwort verwenden Sie camelize statt groß, um Modelldateien mit Unterstrichen zu unterstützen, und verwenden Sie String # constantize statt Kernel.const_get.

Wenn Sie nicht aktive Modelle in Ihrem Modellordner behalten (z. B. eine Suchklasse zum Konsolidieren der Suchlogik), sollten Sie außerdem überprüfen, ob die Klasse ein aktives Datensatzmodell ist.

%Vor%     
Kieran Pilkington 23.11.2011 20:47
quelle
2

Iterate über alle Dateien in '$ RAILS_ROOT \ app \ models'?

Zum Beispiel

%Vor%

Hilft das?

    
nathanvda 05.05.2010 12:00
quelle
1

Rails Admin verwendet diesen Code (siehe Ссылка , Methode "rentable_models"):

%Vor%

Der Vorteil ist, dass es Modelle in verknüpften Engines lädt, nicht nur in Ihrer aktuellen App.

    
Daniel 22.04.2014 22:01
quelle
1

Ich habe versucht, die obigen Lösungen unter Rails 5 zu implementieren und sie haben nicht ganz funktioniert. Hier ist eine Lösung, die alle Modelle findet, die mit "page_" beginnen (oder jedes andere Präfix; spezifizieren Sie das einfach):

%Vor%     
fuzzygroup 01.03.2017 02:49
quelle
0

Wenn Sie ApplicationRecord-Modelle nur in einer modernen Rails-Anwendung betrachten, können Sie einfach

verwenden %Vor%

Hier können Sie einen Blick darauf werfen: Ссылка

    
giglemad 02.03.2017 22:24
quelle