From b701669d0d9a5d7be01f99b8e725c05c6c5d52ce Mon Sep 17 00:00:00 2001 From: erdgeist Date: Thu, 16 Jul 2026 15:12:07 +0200 Subject: Split current_unique_name in a setter and an accessor Also clean up some instance variable assignments on the way. --- app/controllers/nodes_controller.rb | 12 ++---------- app/models/node.rb | 7 +++++-- app/views/nodes/new.html.erb | 4 ++-- 3 files changed, 9 insertions(+), 14 deletions(-) diff --git a/app/controllers/nodes_controller.rb b/app/controllers/nodes_controller.rb index b66ea49..9834a17 100644 --- a/app/controllers/nodes_controller.rb +++ b/app/controllers/nodes_controller.rb @@ -27,12 +27,7 @@ class NodesController < ApplicationController def new @node = Node.new node_params @selected_kind = CccConventions::NODE_KINDS.key?(params[:kind]) ? params[:kind] : "generic" - if params.has_key?(:parent_id) - @parent_id = params[:parent_id] - parent = Node.find(@parent_id) - @parent_name = parent.title - @parent_unique_name = parent.current_unique_name - end + @parent = Node.find(params[:parent_id]) if params.has_key?(:parent_id) end def create @@ -57,10 +52,7 @@ class NodesController < ApplicationController redirect_to(edit_node_path(@node)) else @selected_kind = CccConventions::NODE_KINDS.key?(params[:kind]) ? params[:kind] : "generic" - if params[:parent_id].present? - @parent_id = params[:parent_id] - @parent_name = Node.find(@parent_id).title - end + @parent = Node.find(params[:parent_id]) if params.has_key?(:parent_id) render :new end end diff --git a/app/models/node.rb b/app/models/node.rb index 6ca607d..717f5b4 100644 --- a/app/models/node.rb +++ b/app/models/node.rb @@ -268,9 +268,12 @@ class Node < ApplicationRecord parent.nil? ? [slug] : parent.path_to_root.push(slug) end + def computed_unique_name + path = path_to_root[1..-1].join("/") # excluding root + end + def current_unique_name - path = path_to_root[1..-1] # excluding root - self.unique_name = path.join("/") + self.unique_name = computed_unique_name end def update_unique_name diff --git a/app/views/nodes/new.html.erb b/app/views/nodes/new.html.erb index 49149d5..38eac84 100644 --- a/app/views/nodes/new.html.erb +++ b/app/views/nodes/new.html.erb @@ -32,8 +32,8 @@
">
Parent
- <%= text_field_tag :parent_search_term, @parent_name %> - <%= hidden_field_tag :parent_id, @parent_id, data: { unique_name: @parent_unique_name } %> + <%= text_field_tag :parent_search_term, @parent&.title %> + <%= hidden_field_tag :parent_id, @parent&.id, data: { unique_name: @parent&.current_unique_name } %>
-- cgit v1.3