move website from User to UserProfile

This commit is contained in:
Andrew Bezzub 2014-06-06 21:54:32 -07:00
parent 1c7f68764a
commit 7db31adf35
6 changed files with 29 additions and 5 deletions

View File

@ -770,7 +770,6 @@ end
# username_lower :string(60) not null
# auth_token :string(32)
# last_seen_at :datetime
# website :string(255)
# admin :boolean default(FALSE), not null
# last_emailed_at :datetime
# email_digests :boolean not null

View File

@ -7,4 +7,5 @@ end
#
# user_id :integer not null, primary key
# location :string(255)
# website :string(255)
#

View File

@ -116,6 +116,13 @@ class UserSerializer < BasicUserSerializer
location.present?
end
def website
object.user_profile.try(:website)
end
def include_website?
website.present?
end
def stats
UserAction.stats(object.id, scope)
end

View File

@ -28,7 +28,8 @@ class UserUpdater
end
def update(attributes = {})
user.website = format_url(attributes.fetch(:website) { user.website })
user_profile = user.user_profile
user_profile.website = format_url(attributes.fetch(:website) { user_profile.website })
user.bio_raw = attributes.fetch(:bio_raw) { user.bio_raw }
user.name = attributes.fetch(:name) { user.name }
@ -59,7 +60,6 @@ class UserUpdater
end
end
user_profile = user.user_profile
PROFILE_ATTR.each do |attribute|
user_profile.send("#{attribute.to_s}=", attributes[attribute])
end

View File

@ -0,0 +1,17 @@
class AddWebsiteToUserProfiles < ActiveRecord::Migration
def up
add_column :user_profiles, :website, :string
execute "UPDATE user_profiles SET website = (SELECT website FROM users where user_profiles.user_id = users.id)"
remove_column :users, :website
end
def down
add_column :users, :website, :string
execute "UPDATE users SET website = (SELECT website FROM user_profiles where user_profiles.user_id = users.id)"
remove_column :user_profiles, :website
end
end

View File

@ -68,7 +68,7 @@ describe UserUpdater do
updater.update(website: 'http://example.com')
expect(user.reload.website).to eq 'http://example.com'
expect(user.reload.user_profile.website).to eq 'http://example.com'
end
end
@ -79,7 +79,7 @@ describe UserUpdater do
updater.update(website: 'example.com')
expect(user.reload.website).to eq 'http://example.com'
expect(user.reload.user_profile.website).to eq 'http://example.com'
end
end
end