2017-10-09 2 views
1

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

+0

Rechercher "rails reverse engineering postgres" –

Répondre

0

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:

  1. 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 ​​serait Admin::User, Admin::OtherTable, Admin::Suggestion, mais il n'y a aucun moyen que ces gemmes le comprennent.

  2. 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.

  3. 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éthode user.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.