diff options
| -rw-r--r-- | app/models/public_body.rb | 7 | ||||
| -rw-r--r-- | spec/models/public_body_spec.rb | 5 |
2 files changed, 11 insertions, 1 deletions
diff --git a/app/models/public_body.rb b/app/models/public_body.rb index a18af8c69..bc83f88f9 100644 --- a/app/models/public_body.rb +++ b/app/models/public_body.rb @@ -234,7 +234,12 @@ class PublicBody < ActiveRecord::Base end def update_url_name - self.url_name = MySociety::Format.simplify_url_part(self.short_or_long_name, 'body') + preferred_name = self.short_or_long_name + if !preferred_name.nil? + # we test it's not nil, because sometimes a race condition + # means no name has been set yet + self.url_name = MySociety::Format.simplify_url_part(preferred_name, 'body') + end end # Return the short name if present, or else long name diff --git a/spec/models/public_body_spec.rb b/spec/models/public_body_spec.rb index e30916dff..baa1e6186 100644 --- a/spec/models/public_body_spec.rb +++ b/spec/models/public_body_spec.rb @@ -169,6 +169,11 @@ describe PublicBody, " when saving" do @public_body.save! @public_body.first_letter.should == 'T' end + + it "should not throw an error if the name is unset at the time the short_name is set" do + @public_body.name = nil + @public_body.short_name = nil + end end describe PublicBody, "when searching" do |
