在Ruby on Rails中列出Database中的可用表

时间:2014-01-21 06:24:38

标签: mysql ruby-on-rails activerecord gem

我是Codeigniter开发人员,对于我的一个项目,我需要使用Rails而不是CI。我有一个包含30多个表的数据库,将来可能会添加更多表。我的任务是获取所有这些表格,并以条形图的形式单独显示每个表格。

我对rails的了解是使用带有活动记录的控制器和模型来获取数据。我不想为每个表创建单独的模型。因此,我想知道是否有更好的解决方案,例如要求rails在数据库中查找可用的表,并根据请求的URI,从表中显示数据。

1 个答案:

答案 0 :(得分:2)

使用活动记录,您可以使用以下命令直接运行sql:

ActiveRecord::Base.connection.select_all(sql)

所以,如果我理解你的问题,你想获得数据库中的表列表,可以像这样在postgres上完成:

sql = "SELECT table_name FROM information_schema.tables WHERE table_schema = 'public';"
table_names = ActiveRecord::Base.connection.select_all(sql)
table_names.to_a
# => [{"table_name"=>"orders"},
#     {"table_name"=>"plans"},
#     {"table_name"=>"products"},
#     {"table_name"=>"services"},
#     {"table_name"=>"users"},
#     {"table_name"=>"schema_migrations"}]