From 996a073eae9925c6cde0a765fbc7798727738a28 Mon Sep 17 00:00:00 2001 From: Sai Date: Thu, 23 Jan 2014 16:26:09 -0500 Subject: [PATCH] #dup with unslugged model causes undefined method error In lib/friendly_id/base.rb:252: ``` def dup super.tap { |duplicate| duplicate.slug = nil } end ``` However, suppose we have a User with just `friendly_id :login` - no extra slug. #slug= is not defined, and therefore some_user.dup fails. My patch just makes the dup check if slug= is defined before using it. --- lib/friendly_id/base.rb | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/lib/friendly_id/base.rb b/lib/friendly_id/base.rb index 5e10762f3..18195c8bf 100644 --- a/lib/friendly_id/base.rb +++ b/lib/friendly_id/base.rb @@ -249,7 +249,7 @@ def to_param # Clears slug on duplicate records when calling `dup`. def dup - super.tap { |duplicate| duplicate.slug = nil } + super.tap { |duplicate| duplicate.slug = nil if duplicate.respond_to?('slug=') } end end end