diff --git a/.ruby-version b/.ruby-version new file mode 100644 index 0000000..37c2961 --- /dev/null +++ b/.ruby-version @@ -0,0 +1 @@ +2.7.2 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..5d7c324 100644 --- a/test/slug_test.rb +++ b/test/slug_test.rb @@ -28,6 +28,11 @@ assert_equal(orphan.id.to_s, query) end + it "does not modify the source column" do + article = Article.create(headline: 'A long, complex, headline') + assert_equal('A long, complex, headline', article.headline) + end + describe "slug column" do it "saves slug to 'slug' column by default" do article = Article.create!(:headline => 'Test Headline')