aboutsummaryrefslogtreecommitdiffstats
path: root/activerecord
diff options
context:
space:
mode:
authorRafael Mendonça França <rafaelmfranca@gmail.com>2012-07-08 12:12:15 -0700
committerRafael Mendonça França <rafaelmfranca@gmail.com>2012-07-08 12:12:15 -0700
commitbbc08c759c13d654621c1eb0659f3bdd6a66dfd5 (patch)
tree52bec1a2902110134cb1819fd8c46ef194bd9962 /activerecord
parent22bc12ec374b8bdeb3818ca0a3eb787dd3ce39d8 (diff)
parent07ebc53d339a3f59f038c0b2663416c64a417885 (diff)
downloadrails-bbc08c759c13d654621c1eb0659f3bdd6a66dfd5.tar.gz
rails-bbc08c759c13d654621c1eb0659f3bdd6a66dfd5.tar.bz2
rails-bbc08c759c13d654621c1eb0659f3bdd6a66dfd5.zip
Merge pull request #6956 from lexmag/ref_migration_generator
Add references statements to migration generator
Diffstat (limited to 'activerecord')
-rw-r--r--activerecord/lib/rails/generators/active_record/migration/templates/migration.rb20
1 files changed, 16 insertions, 4 deletions
diff --git a/activerecord/lib/rails/generators/active_record/migration/templates/migration.rb b/activerecord/lib/rails/generators/active_record/migration/templates/migration.rb
index b1a0f83b5f..34eaffcb0f 100644
--- a/activerecord/lib/rails/generators/active_record/migration/templates/migration.rb
+++ b/activerecord/lib/rails/generators/active_record/migration/templates/migration.rb
@@ -2,30 +2,42 @@ class <%= migration_class_name %> < ActiveRecord::Migration
<%- if migration_action == 'add' -%>
def change
<% attributes.each do |attribute| -%>
+ <%- if attribute.reference? -%>
+ add_reference :<%= table_name %>, :<%= attribute.name %><%= attribute.inject_options %>
+ <%- else -%>
add_column :<%= table_name %>, :<%= attribute.name %>, :<%= attribute.type %><%= attribute.inject_options %>
<%- if attribute.has_index? -%>
add_index :<%= table_name %>, :<%= attribute.index_name %><%= attribute.inject_index_options %>
<%- end -%>
+ <%- end -%>
<%- end -%>
end
<%- else -%>
def up
<% attributes.each do |attribute| -%>
- <%- if migration_action -%>
- <%= migration_action %>_column :<%= table_name %>, :<%= attribute.name %>
+<%- if migration_action -%>
+ <%- if attribute.reference? -%>
+ remove_reference :<%= table_name %>, :<%= attribute.name %><%= ', polymorphic: true' if attribute.polymorphic? %>
+ <%- else -%>
+ remove_column :<%= table_name %>, :<%= attribute.name %>
<%- end -%>
<%- end -%>
+<%- end -%>
end
def down
<% attributes.reverse.each do |attribute| -%>
- <%- if migration_action -%>
+<%- if migration_action -%>
+ <%- if attribute.reference? -%>
+ add_reference :<%= table_name %>, :<%= attribute.name %><%= attribute.inject_options %>
+ <%- else -%>
add_column :<%= table_name %>, :<%= attribute.name %>, :<%= attribute.type %><%= attribute.inject_options %>
<%- if attribute.has_index? -%>
add_index :<%= table_name %>, :<%= attribute.index_name %><%= attribute.inject_index_options %>
<%- end -%>
<%- end -%>
<%- end -%>
+<%- end -%>
end
<%- end -%>
-end
+end \ No newline at end of file