📅  最后修改于: 2023-12-03 14:52:32.560000             🧑  作者: Mango
在 Rails 中,我们可能需要获取数据库中的表信息,以便进行一些操作。本文将介绍如何使用 Ruby 代码获取表列表的方法。
ActiveRecord::Base.connection.tables
Rails 中的模型类都继承自 ActiveRecord::Base
类,而 ActiveRecord::Base
类有一个类方法 connection
可以返回当前模型的数据库连接对象。我们可以通过调用 connection.tables
方法来获取当前数据库中的所有表名。
示例代码:
table_names = ActiveRecord::Base.connection.tables
puts table_names.inspect
输出:
["schema_migrations", "users", "posts", "comments"]
这样我们就可以得到一个数组,其中包含了当前数据库中的所有表名。
ActiveRecord::Base.connection.execute
除了使用 connection.tables
方法,我们还可以使用 SQL 语句查询数据库中的表列表。在 Rails 中,我们可以通过调用 ActiveRecord::Base.connection.execute
方法来执行 SQL 语句并获取执行结果。
示例代码:
table_info = ActiveRecord::Base.connection.execute("SELECT table_name FROM information_schema.tables WHERE table_type='BASE TABLE' AND table_schema='public' ORDER BY table_name")
table_names = table_info.map { |row| row['table_name'] }
puts table_names.inspect
输出:
["comments", "posts", "schema_migrations", "users"]
这样我们就可以得到一个数组,其中包含了当前数据库中的所有表名。
以上就是在 Rails 中获取表列表的两种方法,具体的使用取决于个人喜好和实际应用场景。无论哪种方法,获取表列表的操作都非常简单,而且可以轻松地扩展到其他数据库中。