2014-01-21 3 views
2

Я разработчик Codeigniter, и для одного из моих проектов мне нужно использовать Rails вместо CI. У меня есть база данных с более чем 30 таблицами, которые могут быть добавлены в будущем. Моя задача - собрать все эти таблицы и показать их по отдельности в виде гистограммы.Список доступных таблиц из базы данных в Ruby on Rails

Все, что я знаю о рельсах, использует контроллер и модель с активными записями, чтобы получить данные. Я не хочу создавать индивидуальную модель для каждой таблицы. Следовательно, мне было интересно, есть ли лучшее решение, например, просить рельсы искать доступные таблицы внутри базы данных и на основе запрошенного URI представлять данные из таблицы.

ответ

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"}] 
Смежные вопросы