-
Notifications
You must be signed in to change notification settings - Fork 36
Open
Description
Currently it appears that the associations are created based on the foreign keys. It would be nice if it could do it also based on column name.
Quick & Dirty solution for me:
def constraint_src(table_name, tables)
constraints = []
connection.columns(table_name).map(&:name).each do |column|
puts column
if column.include?('_id') and tables.include?(column.chomp('_id').pluralize)
table = column.chomp('_id')
constraints << "belongs_to :#{table.downcase.singularize}"
end
end
tables.each do |table|
if table != table_name
connection.columns(table).map(&:name).each do |column|
if column.include? '_id' and "#{table_name.singularize}_id" === column
constraints << "has_many :#{table.downcase.singularize}"
end
end
end
end
constraints
endNote this will fail to detect has_one associations.
Reactions are currently unavailable
Metadata
Metadata
Assignees
Labels
No labels