diff options
author | Aleksey Magusev <lexmag@gmail.com> | 2012-07-19 00:24:21 +0400 |
---|---|---|
committer | Aleksey Magusev <lexmag@gmail.com> | 2012-07-19 00:24:21 +0400 |
commit | 5a7d31913bb16977ec85d55de34ac0d79b512d62 (patch) | |
tree | fe178a7dc9532832a8ec8ea992f28a29cae61320 /activerecord/lib/rails/generators | |
parent | fe5b943d9fd389f313dd87bf73b7c11b8746227b (diff) | |
download | rails-5a7d31913bb16977ec85d55de34ac0d79b512d62.tar.gz rails-5a7d31913bb16977ec85d55de34ac0d79b512d62.tar.bz2 rails-5a7d31913bb16977ec85d55de34ac0d79b512d62.zip |
Add fkey attributes to `join_table` migration generator
Diffstat (limited to 'activerecord/lib/rails/generators')
-rw-r--r-- | activerecord/lib/rails/generators/active_record/migration/migration_generator.rb | 12 |
1 files changed, 10 insertions, 2 deletions
diff --git a/activerecord/lib/rails/generators/active_record/migration/migration_generator.rb b/activerecord/lib/rails/generators/active_record/migration/migration_generator.rb index c1f9d8962b..f6a432c6e5 100644 --- a/activerecord/lib/rails/generators/active_record/migration/migration_generator.rb +++ b/activerecord/lib/rails/generators/active_record/migration/migration_generator.rb @@ -21,7 +21,7 @@ module ActiveRecord when /join_table/ if attributes.length == 2 @migration_action = 'join' - @join_tables = attributes.map(&:name) + @join_tables = attributes.map(&:plural_name) set_index_names end @@ -30,9 +30,17 @@ module ActiveRecord def set_index_names attributes.each_with_index do |attr, i| - attr.index_name = [attr, attributes[i - 1]].map{ |a| :"#{a.name.singularize}_id"} + attr.index_name = [attr, attributes[i - 1]].map{ |a| index_name_for(a) } end end + + def index_name_for(attribute) + if attribute.foreign_key? + attribute.name + else + attribute.name.singularize.foreign_key + end.to_sym + end end end end |