В панели администратора моего приложения я хотел бы отобразить все таблицы в базе данных.Получить все таблицы из базы данных в контроллере Rails
Как я это делаю в данный момент получает все записи для каждой таблицы, такие как:
@users = User.all
@pages = Page.all
etc.
двутавровых создать таблицу с моей точки зрения, добавляя заголовки таблицы вручную:
<thead>
<tr>
<th>Id</th>
<th>Name</th>
<th>Email</th>
</tr>
</thead>
Я Acces все записи:
<% @users.each do |user| %>
<tr>
<td><%= user.id %></td>
etc..
То, что я хотел бы сделать, чтобы получить хэш от всех т ляющим как это:
@DB is { table_name_1: table_object_1, table_name_2: table_object_2}
Тогда на мой взгляд, я мог бы сделать что-то вроде
<% @DB.each do |table| %>
<table>
<% @table.each do |record| %>
<table row>
<%end%>
</table>
<%end%>
мне удалось получить имена таблиц с помощью этого:
@DB = Hash.new
ActiveRecord::Base.connection.tables.each do |table|
next if table.match(/\Aschema_migrations\Z/)
next if table.match(/\Aauthentications\Z/)
klass = table.singularize.camelize.constantize
@DB[klass.name] = klass
end
end
здесь: How to list of all the tables defined for the database when using active record?
Однако я получаю сообщение об ошибке @DB["User"]
не имеет способа each
или более точно ..: undefined method each' for # < Class:0x4ab7af0>
Вы можете использовать '' rails_admin', active_admin' или моя простая библиотека 'bareback' для этой задачи, проверьте https://github.com/nielsbuus/bareback –