Ich möchte in der Lage sein, alle Modelle in meiner Rails-App zu durchlaufen und zu inspizieren. In Pseudo-Code würde es in etwa so aussehen:Wie kann ich alle Modelle in meiner Rails-App durchlaufen?
rails_env.models.each do |model|
associations = model.reflect_on_all_associations(:has_many)
... do some stuff
end
Meine Frage ist, wie überprüfen ich meine Rails-Anwendung eine Sammlung der Modelle (rails_env.models) zu bekommen?
'classify' ist in der Tat besser als' capitalize', aber es kann zu Problemen führen, da es 'singularize' auf Namen nennen, die bereits singulär sind und dass kann Probleme verursachen. Eine noch bessere Alternative wäre es, 'camelize' direkt zu nennen, was Klassifikationsaufrufe nach singularize sind. – DanneManne
Bearbeitete Antwort, um die Verwendung von camelize zur Behandlung des Falles zu empfehlen, in dem Modellnamen verstümmelt werden, die in 's' enden, aber nicht Plural sind. –
Ausgezeichnet. Vielen Dank. Ich habe diese Änderungen vor einiger Zeit an meinen eigenen Skripten vorgenommen, aber ich habe vergessen, sie hier zu aktualisieren. Ich bin auch weitergegangen und habe den Aufruf von #sub entfernt, stattdessen #basename second arg, der die Dateierweiterung entfernen kann. –