From 7a980d79e787b4f3f2e6743cd9fbafaaa59c4616 Mon Sep 17 00:00:00 2001 From: rgarcia Date: Thu, 22 Mar 2018 20:06:53 +0100 Subject: [PATCH] Removes use of slugs to edit group name MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Changing a group’s `to_param` to return the slug instead of the id, breaks many tests in the user facing interface We should use slugs in upstream soon, but it should be done in a separate PR, bringing the whole slug implementation from Madrid’s fork and the corresponding test coverage --- .../admin/budget_groups_controller.rb | 9 +++------ app/models/budget/group.rb | 18 +++--------------- 2 files changed, 6 insertions(+), 21 deletions(-) diff --git a/app/controllers/admin/budget_groups_controller.rb b/app/controllers/admin/budget_groups_controller.rb index caeb3c9f3..512e2bfcd 100644 --- a/app/controllers/admin/budget_groups_controller.rb +++ b/app/controllers/admin/budget_groups_controller.rb @@ -3,13 +3,14 @@ class Admin::BudgetGroupsController < Admin::BaseController feature_flag :budgets def create - @budget = Budget.find params[:budget_id] + @budget = Budget.find(params[:budget_id]) @budget.groups.create(budget_group_params) @groups = @budget.groups.includes(:headings) end def update - @group = @budget.groups.by_slug(params[:id]).first + @budget = Budget.find(params[:budget_id]) + @group = @budget.groups.find(params[:id]) @group.update(budget_group_params) end @@ -19,8 +20,4 @@ class Admin::BudgetGroupsController < Admin::BaseController params.require(:budget_group).permit(:name) end - def load_budget - @budget = Budget.find_by(slug: params[:budget_id]) || Budget.find_by(id: params[:budget_id]) - end - end diff --git a/app/models/budget/group.rb b/app/models/budget/group.rb index 6dc7ba61d..a32c7c90d 100644 --- a/app/models/budget/group.rb +++ b/app/models/budget/group.rb @@ -10,27 +10,15 @@ class Budget validates :name, presence: true, uniqueness: { scope: :budget } validates :slug, presence: true, format: /\A[a-z0-9\-_]+\z/ - scope :by_slug, ->(slug) { where(slug: slug) } - - before_save :strip_name - - def to_param - slug - end - def single_heading_group? headings.count == 1 end - def generate_slug? - slug.nil? || budget.drafting? - end - private - def strip_name - self.name = self.name.strip - end + def generate_slug? + slug.nil? || budget.drafting? + end end end