diff --git a/lib/slug/slug.rb b/lib/slug/slug.rb index 23aa38e..51695ee 100644 --- a/lib/slug/slug.rb +++ b/lib/slug/slug.rb @@ -48,7 +48,7 @@ def set_slug(opts={}) validate_slug_columns return if self[self.slug_column].present? && !opts[:force] - self[self.slug_column] = normalize_slug(self.send(self.slug_source)) + self[self.slug_column] = normalize_slug(self.send(self.slug_source).dup) # if normalize_slug returned a blank string, try the generic_default handling if generic_default && self[self.slug_column].blank? diff --git a/test/slug_test.rb b/test/slug_test.rb index 607587a..21dd583 100644 --- a/test/slug_test.rb +++ b/test/slug_test.rb @@ -179,6 +179,13 @@ assert_match 'abc', @article.slug end + it "does not spoil the value" do + @article.headline = 'abc!@#$%^&*•¶§∞¢££¡¿()>