Skip to content
This repository was archived by the owner on Jul 16, 2025. It is now read-only.

Commit 15c4109

Browse files
Fix campaign edit currencies
1 parent cf13768 commit 15c4109

1 file changed

Lines changed: 28 additions & 22 deletions

File tree

app/controllers/campaigns_controller.rb

Lines changed: 28 additions & 22 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
# frozen_string_literal: true
22

33
class CampaignsController < ApplicationController
4-
before_action :set_repository, only: %i[new create edit]
4+
before_action :set_repository, only: %i[new create edit update]
55
before_action :check_repository_ownership!, only: %i[new create edit]
66
before_action :set_campaign, only: %i[edit update]
77

@@ -61,19 +61,23 @@ def edit
6161
end
6262

6363
def update
64-
params[:campaign][:accepted_currencies] = [params[:campaign][:accepted_currencies]] if params[:campaign][:accepted_currencies].is_a?(String)
65-
66-
existing_currencies = @campaign.accepted_currencies || []
67-
params[:campaign][:accepted_currencies].each do |currency|
68-
existing_currencies << currency unless existing_currencies.include?(currency)
69-
end
70-
71-
@campaign.accepted_currencies = existing_currencies
72-
73-
if @campaign.update(campaign_params)
74-
redirect_to user_repository_campaign_path(@repository.user, @repository, @campaign), notice: 'Campaign updated successfully!'
75-
else
76-
render :edit
64+
def update
65+
currencies_param = params[:campaign][:accepted_currencies]
66+
currencies_param = [currencies_param] if currencies_param.is_a?(String)
67+
68+
existing_currencies = @campaign.accepted_currencies || []
69+
70+
currencies_param.each do |currency|
71+
existing_currencies << currency unless existing_currencies.include?(currency)
72+
end
73+
74+
@campaign.accepted_currencies = existing_currencies
75+
76+
if @campaign.save
77+
redirect_to user_repository_campaign_path(@repository.user, @repository, @campaign), notice: 'Campaign updated successfully!'
78+
else
79+
render :edit
80+
end
7781
end
7882
end
7983

@@ -84,16 +88,18 @@ def set_campaign
8488
end
8589

8690
def set_repository
87-
@repository =
88-
if action_name == 'new' || action_name == 'create' || !@campaign
89-
current_user.repositories.find(params[:repository_id])
90-
else
91-
@campaign.repository
91+
if action_name == 'new' || action_name == 'create'
92+
@repository = current_user.repositories.find(params[:repository_id])
93+
else
94+
@campaign = Campaign.find_by(id: params[:id])
95+
if @campaign.nil?
96+
redirect_to root_path, alert: "Campaign not found with id: #{params[:id]}."
97+
return
9298
end
99+
end
93100

94-
Rails.logger.debug "Repository set in #{action_name} action: #{@repository.inspect}"
95-
@campaign = Campaign.find_by(id: params[:id])
96-
redirect_to root_path, alert: "Campaign not found with id: #{params[:id]}." unless @campaign
101+
@repository = @campaign.repository
102+
Rails.logger.debug "Repository set in #{action_name} action: #{@repository.inspect}"
97103
end
98104

99105
# def set_repository

0 commit comments

Comments
 (0)