aboutsummaryrefslogtreecommitdiffstats
path: root/activerecord/lib/rails/generators
diff options
context:
space:
mode:
authorAleksey Magusev <lexmag@gmail.com>2012-07-19 00:24:21 +0400
committerAleksey Magusev <lexmag@gmail.com>2012-07-19 00:24:21 +0400
commit5a7d31913bb16977ec85d55de34ac0d79b512d62 (patch)
treefe178a7dc9532832a8ec8ea992f28a29cae61320 /activerecord/lib/rails/generators
parentfe5b943d9fd389f313dd87bf73b7c11b8746227b (diff)
downloadrails-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.rb12
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