From 06bea4cf46e1c212a28c592d0971581ca8443b04 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Stefan=20Tollk=C3=BChn?= Date: Wed, 6 Aug 2025 20:39:21 +0200 Subject: [PATCH] refactor view to helper method --- app/helpers/subprojects_helper.rb | 11 +++++++++++ app/views/subprojects/_form.html.erb | 15 ++++----------- 2 files changed, 15 insertions(+), 11 deletions(-) diff --git a/app/helpers/subprojects_helper.rb b/app/helpers/subprojects_helper.rb index 7d05567..8285462 100644 --- a/app/helpers/subprojects_helper.rb +++ b/app/helpers/subprojects_helper.rb @@ -6,4 +6,15 @@ module SubprojectsHelper def subproject_view_fields [:subproject_name, :project, :client, :owner, :builder, :subproject_address] end + + def subproject_form_input(form, attrib, subproject) + case attrib + when :project + form.collection_select :project_id, Project.all, :id, ->(project) { project.name }, prompt: "Select Project" + when :client, :owner, :builder + form.collection_select "#{attrib}_id", Client.all, :id, ->(client) { "#{client.company_name} (#{client.lastname}, #{client.firstname})" }, prompt: "Select #{attrib.to_s.capitalize}" + else + form.text_field attrib, value: subproject.send(attrib) + end + end end diff --git a/app/views/subprojects/_form.html.erb b/app/views/subprojects/_form.html.erb index 26f46ea..0994dbf 100644 --- a/app/views/subprojects/_form.html.erb +++ b/app/views/subprojects/_form.html.erb @@ -12,17 +12,10 @@ <% end %> <% subproject_form_fields.each do |attrib| %> -
- <%= form.label attrib, style: "display: block" %> - <% case attrib %> - <% when :project %> - <%= form.collection_select :project_id, Project.all, :id, -> (project) { "#{project.name}" }, prompt: "Select Project" %> - <% when :client, :owner, :builder %> - <%= form.collection_select "#{attrib}_id", Client.all, :id, -> (client) { "#{client.company_name} (#{client.lastname}, #{client.firstname})" }, prompt: "Select #{attrib.capitalize}" %> - <% else %> - <%= form.text_field attrib, value: subproject.send(attrib) %> - <% end %> -
+
+ <%= form.label attrib, style: "display: block" %> + <%= subproject_form_input(form, attrib, subproject) %> +
<% end %>