diff --git a/app/models/budget.rb b/app/models/budget.rb index 28f37f4bc..9b55dc4a6 100644 --- a/app/models/budget.rb +++ b/app/models/budget.rb @@ -180,6 +180,10 @@ class Budget < ActiveRecord::Base ) end end + + def generate_slug? + slug.nil? || drafting? + end end diff --git a/app/models/budget/group.rb b/app/models/budget/group.rb index a2b3179a3..dd96cdb95 100644 --- a/app/models/budget/group.rb +++ b/app/models/budget/group.rb @@ -13,5 +13,11 @@ class Budget def single_heading_group? headings.count == 1 end + + private + + def generate_slug? + slug.nil? || budget.drafting? + end end end diff --git a/app/models/budget/heading.rb b/app/models/budget/heading.rb index 8816d1abf..4818eaeed 100644 --- a/app/models/budget/heading.rb +++ b/app/models/budget/heading.rb @@ -28,5 +28,11 @@ class Budget investments.empty? end + private + + def generate_slug? + slug.nil? || budget.drafting? + end + end end diff --git a/app/models/concerns/sluggable.rb b/app/models/concerns/sluggable.rb index 01e27489d..495ffaf77 100644 --- a/app/models/concerns/sluggable.rb +++ b/app/models/concerns/sluggable.rb @@ -2,7 +2,7 @@ module Sluggable extend ActiveSupport::Concern included do - before_validation :generate_slug + before_validation :generate_slug, if: :generate_slug? end def generate_slug