Je suis nouveau dans le monde des rails et j'ai besoin d'utiliser une base de données existante pour un projet rails, par exemple j'ai une table "jeux" qui n'a pas les colonnes created_at et updated_at, si je les ajoute dans le terminal postgres, les rails reconnaîtraient mes tables comme des objets ("Game" par exemple)? ou devrais-je générer le modèle pour chaque table dans ma base de données? Quelle serait la bonne façon de récupérer toutes les tables comme un objet et de les utiliser depuis les contrôleurs?Comment utiliser une base de données postgres comme si elle était native à Rails
Répondre
Comme mentionné dans le commentaire, une version est d'utiliser une sorte de bijou d'ingénierie inverse qui génère automatiquement des modèles pour vos tables de base de données avec toutes les associations, les clés étrangères, etc.
MAIS si vous êtes nouveau Rails , je recommande vraiment le faire à la main pour deux raisons:
Ces pierres précieuses ne comprendront pas l'espace de nommage (une estimation solide de la mine), par exemple Si vous avez un
admin_users
, ,admin_suggestions
, le nom de classe le plus raisonnable dans ruby seraitAdmin::User
,Admin::OtherTable
,Admin::Suggestion
, mais il n'y a aucun moyen que ces gemmes le comprennent.S'il est plus logique de nommer votre modèle différent de celui de la table (et la carte la bonne table avec
self.table_name=
, pierres précieuses ne seront pas aider.Si les associations doivent être définies qu'une seule façon alors votre les modèles obtiendront beaucoup de code en eux qui est juste inutile (si vous avez "l'utilisateur a beaucoup d'articles avec une clé étrangère de
author_id
" peut-être vous n'avez pas besoin de la méthodeuser.articles
, mais vous allez l'obtenir de toute façon
Probablement il y a beaucoup plus de ces cas. suggérez fortement de le faire à la main afin que vous ayez un contrôle total sur le type de code qui est écrit.
Rechercher "rails reverse engineering postgres" –