2009-06-07 7 views
1

Ich baue meine erste Rails-Anwendung und ich erwarte, dass es schließlich viele Modelle/Controller haben wird. Und natürlich haben sie jeweils eine ID mit ihnen verbunden. Ich kann sehen, dass sie bereits Verwirrung stiften.Wie beschriften: id in Ruby on Rails apps?

In der Benutzer-Controller heißt das Feld id, aber in jedem anderen Controller ich es als user_id bezeichnen. Wenn ein Controller mehrere Modelle manipuliert oder Aktionen in anderen Controllern aufruft, scheint es mühsam, alle IDs in Ordnung zu halten.

Ich möchte ihnen nur alle voranstellen, um explizit zu sein, aber ich fürchte, dies könnte zu Fehlern führen, da der Benutzer kein user_id-Feld hat. Dies wäre ein Problem, wenn Sie etwas wie update_attributes!

Hat jemand anderes dieses Problem? Ist das wirklich ein Problem oder mache ich das zu einem größeren Thema als es eigentlich ist? Gibt es Best Practices für die Benennung des ID-Feldes?

Danke! Dave

Antwort

7

Das ist wirklich kein Problem. Die Konvention in Rails besteht darin, den Primärschlüssel der Tabelle als ID und alle Fremdschlüssel zu kennzeichnen, die auf diese Tabelle als Tabellenname_ID zugreifen.

Ich rate davon ab, dieses Standardverhalten zu ändern, da Rails mehr auf Konvention als auf Konfiguration abzielt, und diese Benennungsmethode macht Ihr DB-Schema tatsächlich leichter verständlich, wenn die Komplexität zunimmt.

Wenn Sie sich entscheiden, den Namen des Primärschlüssels zu ändern, besteht auch die Möglichkeit, dass bei der Verwendung von Edelsteinen und Plugins anderer Leute weitere Probleme auftreten.

1

Soweit ich weiß, ist der beste Name für ID-Feld ID.

Ich habe Anwendung mit etwa 30 Modellen und fast die gleiche Anzahl von Controllern. Ich manipuliere viele Modelle in einem einzigen Controller und ich hatte nie Probleme mit ID. Vielleicht können wir Ihnen ein wenig mehr helfen, wenn Sie etwas Code einfügen.