Je sais que vous pouvez demander à ActiveRecord de lister les tables dans la console en utilisant :
ActiveRecord::Base.connection.tables
Existe-t-il une commande permettant de lister les colonnes d'un tableau donné ?
Je sais que vous pouvez demander à ActiveRecord de lister les tables dans la console en utilisant :
ActiveRecord::Base.connection.tables
Existe-t-il une commande permettant de lister les colonnes d'un tableau donné ?
Elle récupère les colonnes, pas seulement les noms des colonnes, et utilise ActiveRecord::Base::Connection, donc aucun modèle n'est nécessaire. Pratique pour sortir rapidement la structure d'une base de données.
ActiveRecord::Base.connection.tables.each do |table_name|
puts table_name
ActiveRecord::Base.connection.columns(table_name).each do |c|
puts "- #{c.name}: #{c.type} #{c.limit}"
end
end
Exemple de sortie : http://screencast.com/t/EsNlvJEqM
En utilisant les rails trois, vous pouvez simplement taper le nom du modèle :
> User
gives:
User(id: integer, name: string, email: string, etc...)
Dans les rails quatre, vous devez d'abord établir une connexion :
irb(main):001:0> User
=> User (call 'User.connection' to establish a connection)
irb(main):002:0> User.connection; nil #call nil to stop repl spitting out the connection object (long)
=> nil
irb(main):003:0> User
User(id: integer, name: string, email: string, etc...)
Si vous êtes à l'aise avec les commandes SQL, vous pouvez entrer dans le dossier de votre application et exécuter rails db
qui est une forme abrégée de rails dbconsole
. Il entrera dans le shell de votre base de données, qu'elle soit sqlite ou mysql.
Ensuite, vous pouvez interroger les colonnes de la table en utilisant la commande sql suivante :
pragma table_info(your_table);
Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.