diff --git a/app/views/budgets/executions/_investments.html.erb b/app/components/budgets/executions/investments_component.html.erb
similarity index 84%
rename from app/views/budgets/executions/_investments.html.erb
rename to app/components/budgets/executions/investments_component.html.erb
index 50e45cab8..b6a7dc937 100644
--- a/app/views/budgets/executions/_investments.html.erb
+++ b/app/components/budgets/executions/investments_component.html.erb
@@ -1,4 +1,4 @@
-<% @investments_by_heading.each do |heading, investments| %>
+<% investments_by_heading.each do |heading, investments| %>
<%= heading.name %> (<%= investments.count %>)
@@ -11,7 +11,7 @@
<%= link_to investment.title,
- budget_investment_path(@budget, investment, anchor: "tab-milestones") %>
+ polymorphic_path(investment, anchor: "tab-milestones") %>
<%= investment.author.name %>
diff --git a/app/components/budgets/executions/investments_component.rb b/app/components/budgets/executions/investments_component.rb
new file mode 100644
index 000000000..d6f50bac7
--- /dev/null
+++ b/app/components/budgets/executions/investments_component.rb
@@ -0,0 +1,7 @@
+class Budgets::Executions::InvestmentsComponent < ApplicationComponent
+ attr_reader :investments_by_heading
+
+ def initialize(investments_by_heading)
+ @investments_by_heading = investments_by_heading
+ end
+end
diff --git a/app/views/budgets/executions/show.html.erb b/app/views/budgets/executions/show.html.erb
index 01c16fc44..4db70fb8f 100644
--- a/app/views/budgets/executions/show.html.erb
+++ b/app/views/budgets/executions/show.html.erb
@@ -45,7 +45,7 @@
<%= render Budgets::Executions::FiltersComponent.new(@budget, @statuses) %>
<% if @investments_by_heading.any? %>
- <%= render "budgets/executions/investments" %>
+ <%= render Budgets::Executions::InvestmentsComponent.new(@investments_by_heading) %>
<% else %>
<%= t("budgets.executions.no_winner_investments") %>