2009-10-23 8 views
5

J'ai une base de données avec des tables. Je veux créer un modèle dans mon application Rails à partir de la table existante. Comme je sais, cette fonctionnalité est disponible, et se fait comme suit:

script/generate scaffold model_name --skip-migration


Bien sûr, je définis ma base de données dans database.yml fichier. L'échafaudage a généré pour moi un modèle avec contrôleur et vues. Mon nom de table n'est pas comme il doit être pour Rails (c'est incorrect, ne pas suivre les conventions), j'ai ajouté set_table_name à mon contrôleur. Mais, quand j'appelle la méthode d'index, sur ma page j'ai seulement l'ensemble de # symboles, mais pas une base de données. Dans mon index.html.erb j'ai seulement généré du code par échafaudage. Comment puis-je imprimer mes données de base de données?
Modèle d'une table existante dans Rails 2

+0

J'ai ouvert la source de ma page Web et vu, que j'ai quelque chose comme ça: # Yurish

+0

Pouvez-vous coller dans le contenu de votre index.h Fichier tml.erb –

+0

Annonce klients

<% @ klients.each do | klient | %> <% end %>
<% = link_to 'Show', klient%> <% = link_to 'Edit', edit_klient_path (klient)%> <% = link_to 'Destroy', klient,: confirmer = > 'êtes-vous sûr?': méthode =>: supprimer%>

<% = link_to 'New klient', new_klient_path%> – Yurish

Répondre

7

Avez-vous généré un fichier de schéma à partir de votre base de données existante? Si vous exécutez la commande

rake db:schema:dump 

puis Régénérer votre échafaudage cela devrait résoudre le problème.

En outre, vous voudrez peut-être vérifier Dr Nic's Magic Model generator. Cela générera des modèles pour toutes vos tables existantes et tentera de deviner les relations. Cela ne fonctionnera probablement pas si votre nom de table n'est pas compréhensible par les rails.

MISE À JOUR

Je ne généralement pas utiliser l'échafaudage par défaut mais je l'ai testé moi-même et il semble que si vous sautez la migration et ne passez pas de paires nom de colonne/puis tapez le générateur d'échafaudage ne sera pas créer quelque chose dans le modèle pour rendre les colonnes.

Vous avez deux choix ici soit

  1. passe dans les paires nom de colonne, ainsi que sauter la migration ou
  2. Télécharger Ryan Bates Nifty Scaffold generator qui va créer l'échafaud avec les noms de colonnes, même si vous spécifiez - -skip migration
+0

je base de données postgresql, et je généré schéma . Problème non résolu. – Yurish

+0

Merci!Je vais essayer, mais il semble que vous avez raison! – Yurish

+0

C'était génial pour moi. J'ai créé une nouvelle application, l'ai pointée sur une base de données à partir d'une ancienne base de données d'application (non-rails) et elle a créé le fichier schema.rb pour les instructions create table de migration pour mes 358 tables !!! Ensuite, je pointe une application sur une base de données différente et utilise ce fichier de schéma pour le créer dans cette base de données différente. –

Questions connexes