Frage

Seit Anfang, Rails hat sich mit einem Namensraum-Modelle Probleme hatte. Im Laufe der Zeit gab ziemlich jeder es auf zu verbrauchen. Ich eingeschlossen.

Mit Rails 2.3, würde ich ein Update auf die Situation. Besonderheiten Fragen, die ich im Sinn haben, sind:

  • Zunächst einmal ist es gut zu gehen?
  • Tabelle Namensgebung, welche Regel folgen?
  • Verbände, wie sie mit der geringstenen Ausführlichkeit zu erklären? wie Fremdschlüsselspalten nennen?
  • Auto-erfordern, funktioniert es, wenn Sie die Modelldateien in einem subdir den Namensraum passend setzen? oder, wie zu nennen und wo die Dateien gespeichert werden?
  • Generation, wird der Modellgenerator behandelt Namespaces erfolgreich und richtig?
  • Generation, wie etwa dem Gerüst-Generator, der Controller umfasst?
  • Unverträglichkeiten / quirkinesses sollte man sich bewusst sein?
War es hilfreich?

Lösung

Die besten writeup ich zu diesem Thema gesehen habe, ist von streng Untypisierte . Mein Wissen 2.3 hat alle Probleme nicht gelöst, was bedeutet, dass sie immer noch unzuverlässig sind.

Andere Tipps

Wir hatten vor kurzem eine große Debatte darüber innerhalb unseres Unternehmens. Ich denke, am Ende des Tages, wir dachten, dass, wenn Sie keine Tabellen in einer Datenbank Namespace können, macht es keinen Sinn, die Modelle Namespace. Wir ließen uns unsere Modelle auf prefixing (Benutzer, useraddress, UserEmailAddresses) und in das Benutzerverzeichnis setzen, dann mit:

config.load_paths << "#{RAILS_ROOT}/app/models/users"

, um die Modelle zu laden. Um die Ausführlichkeit in unseren Modellen zu steuern, tun wir dies häufig:

has_many :addresses, :class_name => "UserAddress"

Bei der Generierung schaffen wir es, als ob es keinen Namensraum war (script / generieren Modell useraddress), dann kopieren Sie sie manuell in das Benutzerverzeichnis.

Achselzucken. Ich denke, am Ende all dies wirklich gibt Ihnen eine sauberere Verzeichnisstruktur, die wie ich wirklich mehr Mühe für einen VIM-Benutzer ist, aber schön für TextMaters.

würde ich noch weg bleiben von ihm. Alles, was gewonnen (was ich bin nicht sicher, was das wäre ehrlich zu sein) würde auf jeden Fall verloren gehen, wenn Sie den Aufwand und den Verlust der Kürze und Klarheit in Ihrem Code betrachten.

Meine neueste App verfügt über 87 Ressourcen und umfasst administrative Funktionen der ganzen Ort. Ich sehe keine Notwendigkeit für Namespacing, IMHO.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top