Comment puis-je afficher les comptes enregistrés actuels de toutes mes tables de base de données dans une commande à l'aide de la console? Merci! P>
4 Réponses :
Cela pourrait être un peu plus long que ce que vous espérait, mais j'espère que cela aide; -)
Dir.glob('app/models/*.rb').each {|file| puts eval(File.basename(file, ".rb").classify + '.count').to_s + " #{File.basename(file, ".rb").classify.pluralize}"}
Salut Dave, merci pour ça! J'ai une erreur particulière - j'ai un modèle appelé «adresse» et en raison de la pluralisation, cela me donne l'erreur NameError: adtres constants unitalisé code>. Désolé pour la question - comment puis-je passer devant cela?
Cela le fera si vous avez "touché" toutes vos classes, mais uniquement pour les modèles réels: si vous voulez vraiment toutes les tables, y compris les tables de jointure qui ne correspondent pas aux modèles: p>
La deuxième commande me donne une erreur MySQL Vous avez une erreur dans votre syntaxe SQL ... Vérifiez la syntaxe de droite à utiliser à proximité de «références» à la ligne 1: sélectionnez Nombre (*) à partir de références code>.
"Références" est un mot réservé dans mysql ( dev.mysql. COM / DOC / REFMAN / 5.1 / FR / Réservé-words.html ). Cela fonctionnera probablement si vous mettez des devis ou des backcules autour de # {t}.
Pour PostgreSQL avec Rails 3.2.x, la 2e déclaration doit être modifiée à: activeCord :: base.connection.tables.map {| t | "# {t} =>" + activerecord :: base.connection.execute ("Sélectionnez le nombre (*) de # {t}"). Premièrement ['Compte']} code>
ActiveRecord::Base.connection.tables this will return an array of the tables you have, if you find it useful.
J'essayais de faire cela et je suis venu avec ma propre façon de le faire.
J'aime encapsuler si dans un modèle appelé mon modèle ressemble à p> J'espère que cela aide p> p>