Module: ActiveRecord::ModelSchema
Defined Under Namespace
Modules: ClassMethods
Class Method Summary collapse
-
.derive_join_table_name(first_table, second_table) ⇒ Object
Derives the join table name for
first_table
andsecond_table
.
Class Method Details
.derive_join_table_name(first_table, second_table) ⇒ Object
Derives the join table name for first_table
and second_table
. The table names appear in alphabetical order. A common prefix is removed (useful for namespaced models like Music::Artist and Music::Record):
artists, records => artists_records
records, artists => artists_records
music_artists, music_records => music_artists_records
music.artists, music.records => music.artists_records
196 197 198 |
# File 'lib/active_record/model_schema.rb', line 196 def self.derive_join_table_name(first_table, second_table) # :nodoc: [first_table.to_s, second_table.to_s].sort.join("\0").gsub(/^(.*[_.])(.+)\0\1(.+)/, '\1\2_\3').tr("\0", "_") end |