Commit 2459bb0

mo khan <mo@mokhan.ca>
2016-05-23 15:12:48
add unique contstraint to Profile#user_id
1 parent 809cb14
app/models/user.rb
@@ -87,7 +87,7 @@ class User < ActiveRecord::Base
   private
 
   def create_profile
-    self.profile = Profile.create!(user: self)
+    self.create_profile!
   end
 
   def lowercase_account_fields
db/migrate/20160523151118_add_unique_constraint_to_user_id.rb
@@ -0,0 +1,11 @@
+class AddUniqueConstraintToUserId < ActiveRecord::Migration
+  def up
+    remove_index :profiles, :user_id
+    add_index :profiles, :user_id, unique: true
+  end
+
+  def down
+    remove_index :profiles, :user_id
+    add_index :profiles, :user_id
+  end
+end
db/schema.rb
@@ -11,7 +11,7 @@
 #
 # It's strongly recommended that you check this file into your version control system.
 
-ActiveRecord::Schema.define(version: 20160521154610) do
+ActiveRecord::Schema.define(version: 20160523151118) do
 
   # These are extensions that must be enabled in order to support this database
   enable_extension "plpgsql"
@@ -75,7 +75,7 @@ ActiveRecord::Schema.define(version: 20160521154610) do
     t.string   "time_zone",        default: "UTC", null: false
   end
 
-  add_index "profiles", ["user_id"], name: "index_profiles_on_user_id", using: :btree
+  add_index "profiles", ["user_id"], name: "index_profiles_on_user_id", unique: true, using: :btree
 
   create_table "programs", id: :uuid, default: "uuid_generate_v4()", force: :cascade do |t|
     t.string   "name",       null: false