📜  如何在 Rails 中获取表列表 - Ruby (1)

📅  最后修改于: 2023-12-03 14:52:32.560000             🧑  作者: Mango

如何在 Rails 中获取表列表 - Ruby

在 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 中获取表列表的两种方法,具体的使用取决于个人喜好和实际应用场景。无论哪种方法,获取表列表的操作都非常简单,而且可以轻松地扩展到其他数据库中。