Comme d'habitude tout est dans le titre :
Voici comment récupérer la liste des tables de la base de données dans une application rubyonrails 3
ActiveRecord::Base.connection.tables
=> ["schema_migrations", "sessions", "products", "families", .....]
Après suivant les besoins vous pouvez lister le schema complet :
ts =
ActiveRecord::Base.connection
.tables
ts.delete("schema_migrations")
ts.delete("sessions")
ts.each do |t|
begin
# Récupère la liste des champs
pour le model en cours
tablefields =
eval(t.camelize.singularize + '.column_names')
rescue
# On a affaire à une table de
jointure
puts "Table de jointure :
#{t}"
end
end