class SequelSchemaDotGenerator::SchemaSourceType::Model
Public Instance Methods
relations()
click to toggle source
# File lib/sequel_schema_dot_generator/schema_source_types/model.rb, line 4 def relations relations = {} @tables.collect do |table_name| model = table_name.to_s.singularize.classify.constantize model.associations.each do |assoc| assoc_info = model.association_reflection(assoc) right_key = assoc_info[:join_table].to_s+assoc_info[:right_key].to_s left_key = assoc_info[:join_table].to_s+assoc_info[:left_key].to_s if assoc_info[:type] == :many_to_many relations[right_key] = [assoc_info[:join_table].to_s, assoc_info[:right_key], assoc_info[:class_name].constantize.implicit_table_name, assoc_info[:class_name].constantize.primary_key] relations[left_key] = [assoc_info[:join_table].to_s, assoc_info[:left_key], assoc_info[:model].implicit_table_name, assoc_info[:model].primary_key] else # one_to_many table_name = assoc_info[:model].implicit_table_name.to_s table_key = assoc_info[:key].to_s relations[right_key] = [table_name, table_key, assoc_info[:class_name].constantize.implicit_table_name, assoc_info[:class_name].constantize.primary_key] end end end relations.values end