Commit cd79878
Changed files (6)
app
spec
controllers
app/controllers/profiles_controller.rb
@@ -14,7 +14,7 @@ class ProfilesController < ApplicationController
profile = current_user.profile
ActiveRecord::Base.transaction do
if params[:home_gym_yelp_id].present?
- profile.home_gym = Gym.create_from_yelp!(params[:home_gym_yelp_id])
+ profile.gym = Gym.create_from_yelp!(params[:home_gym_yelp_id])
end
profile.update(profile_params)
end
app/models/profile.rb
@@ -1,5 +1,6 @@
class Profile < ActiveRecord::Base
belongs_to :user
+ belongs_to :gym
enum social_tolerance: { low: 0, medium: 1, high: 2 }
enum gender: { female: 0, male: 1, transgender: 2, other: nil }
attr_accessor :home_gym
app/views/profiles/edit.html.erb
@@ -40,7 +40,5 @@
</div>
<script type="text/javascript" charset="utf-8">
- new Stronglifters.HomeGym({
- el: 'gym-search',
- })
+ new Stronglifters.HomeGym({ el: 'gym-search' })
</script>
db/migrate/20160528140323_add_home_gym_to_profiles.rb
@@ -0,0 +1,5 @@
+class AddHomeGymToProfiles < ActiveRecord::Migration
+ def change
+ add_reference :profiles, :gym, index: true, foreign_key: true, type: :uuid
+ 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: 20160523151118) do
+ActiveRecord::Schema.define(version: 20160528140323) do
# These are extensions that must be enabled in order to support this database
enable_extension "plpgsql"
@@ -73,8 +73,10 @@ ActiveRecord::Schema.define(version: 20160523151118) do
t.datetime "created_at", null: false
t.datetime "updated_at", null: false
t.string "time_zone", default: "UTC", null: false
+ t.uuid "gym_id"
end
+ add_index "profiles", ["gym_id"], name: "index_profiles_on_gym_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|
@@ -136,6 +138,7 @@ ActiveRecord::Schema.define(version: 20160523151118) do
t.datetime "updated_at", null: false
end
+ add_foreign_key "profiles", "gyms"
add_foreign_key "received_emails", "users"
add_foreign_key "user_sessions", "users"
end
spec/controllers/profiles_controller_spec.rb
@@ -50,6 +50,16 @@ describe ProfilesController do
expect(user.profile.male?).to be_truthy
expect(response).to redirect_to(profile_path(user.profile))
end
+
+ it 'saves the users home gym' do
+ gym = create(:gym, yelp_id: 'sait-campus-centre-calgary')
+
+ patch :update, id: user.to_param,
+ profile: { time_zone: 'Alaska' },
+ home_gym_yelp_id: gym.yelp_id
+
+ expect(user.reload.profile.gym).to eql(gym)
+ end
end
end