clear artist urls before saving url string (fixes #3731)

This commit is contained in:
Albert Yi
2018-06-04 17:37:43 -07:00
parent dd6848912c
commit 52de1fb981
2 changed files with 9 additions and 4 deletions

View File

@@ -181,11 +181,9 @@ class Artist < ApplicationRecord
def save_urls def save_urls
if url_string && saved_change_to_url_string? if url_string && saved_change_to_url_string?
Artist.transaction do Artist.transaction do
self.urls.clear
self.urls = url_string.scan(/[^[:space:]]+/).uniq.map do |url| self.urls = url_string.scan(/[^[:space:]]+/).uniq.map do |url|
# need to do these shenanigans to properly handle prefixes self.urls.find_or_create_by(url: url)
aurl = self.urls.find_or_create_by(url: ArtistUrl.strip_prefixes(url))
aurl.update(url: url)
aurl
end end
end end
end end

View File

@@ -49,6 +49,13 @@ class ArtistTest < ActiveSupport::TestCase
refute(@artist.urls[0].is_active?) refute(@artist.urls[0].is_active?)
end end
should "allow activating a url" do
@artist = Artist.create(name: "blah", url_string: "-http://monet.com")
@artist.update(url_string: "http://monet.com")
assert_equal(1, @artist.urls.count)
assert(@artist.urls[0].is_active?)
end
should "should have a valid name" do should "should have a valid name" do
@artist = Artist.new(:name => "-blah") @artist = Artist.new(:name => "-blah")
@artist.save @artist.save