7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
|
# File 'lib/runger_rails_model_explorer.rb', line 7
def model_metadata
Rails.application.eager_load!
models =
ActiveRecord::Base.descendants.select do |model_class|
!model_class.abstract_class? && model_class.table_exists?
end
models.map do |model|
{
model_name: model.name,
table_name: model.table_name,
columns: model.columns.map do |column|
{
name: column.name,
type: column.type,
null: column.null,
default: column.default,
}
end,
associations: model.reflect_on_all_associations.map do |association|
{
name: association.name,
macro: association.macro,
class_name: association.class_name,
options: association.options,
}
end,
}
end
end
|