From e0871e5dc6cbbe792b1ce29e381aceb6a3f5a47f Mon Sep 17 00:00:00 2001 From: Bertocq Date: Sun, 4 Feb 2018 22:41:47 +0100 Subject: [PATCH] Only update slug if empty or model condition is met --- app/models/budget.rb | 4 ++++ app/models/budget/group.rb | 6 ++++++ app/models/budget/heading.rb | 6 ++++++ app/models/concerns/sluggable.rb | 2 +- 4 files changed, 17 insertions(+), 1 deletion(-) 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