aboutsummaryrefslogtreecommitdiffstats
path: root/activerecord
diff options
context:
space:
mode:
authorSantiago Pastorino <santiago@wyeworks.com>2010-12-16 20:10:30 -0200
committerSantiago Pastorino <santiago@wyeworks.com>2010-12-16 20:58:58 -0200
commit3b9120fa52b76fb8591fe1d0db85d1a940e867d0 (patch)
tree9f7a66f9bd99a31a5b69f2c06b2ff0231d02b4b0 /activerecord
parentf176b2552ecc06634dae53b82a4562d8e80aeed6 (diff)
downloadrails-3b9120fa52b76fb8591fe1d0db85d1a940e867d0.tar.gz
rails-3b9120fa52b76fb8591fe1d0db85d1a940e867d0.tar.bz2
rails-3b9120fa52b76fb8591fe1d0db85d1a940e867d0.zip
Generate add_index by default when giving type belongs_to or references
Diffstat (limited to 'activerecord')
-rw-r--r--activerecord/CHANGELOG22
-rw-r--r--activerecord/lib/rails/generators/active_record/model/templates/migration.rb4
2 files changed, 26 insertions, 0 deletions
diff --git a/activerecord/CHANGELOG b/activerecord/CHANGELOG
index 9c2e311c75..056de18cde 100644
--- a/activerecord/CHANGELOG
+++ b/activerecord/CHANGELOG
@@ -1,5 +1,27 @@
*Rails 3.1.0 (unreleased)*
+* When a model is generated add_index is added by default for belongs_to or references columns
+
+ rails g model post user:belongs_to will generate the following:
+
+ class CreatePosts < ActiveRecord::Migration
+ def up
+ create_table :posts do |t|
+ t.belongs_to :user
+
+ t.timestamps
+ end
+
+ add_index :posts, :user_id
+ end
+
+ def down
+ drop_table :posts
+ end
+ end
+
+ [Santiago Pastorino]
+
* Setting the id of a belongs_to object will update the reference to the
object. [#2989 state:resolved]
diff --git a/activerecord/lib/rails/generators/active_record/model/templates/migration.rb b/activerecord/lib/rails/generators/active_record/model/templates/migration.rb
index 70e064be21..7d4e1a7404 100644
--- a/activerecord/lib/rails/generators/active_record/model/templates/migration.rb
+++ b/activerecord/lib/rails/generators/active_record/model/templates/migration.rb
@@ -8,6 +8,10 @@ class <%= migration_class_name %> < ActiveRecord::Migration
t.timestamps
<% end -%>
end
+
+<% attributes.select {|attr| attr.reference? }.each do |attribute| -%>
+ add_index :<%= table_name %>, :<%= attribute.name %>_id
+<% end -%>
end
def down