Skip to content

Commit 07f1ccb

Browse files
committed
Use update instead of update_all
`update_all` does not run validations
1 parent 0dba85f commit 07f1ccb

File tree

3 files changed

+11
-3
lines changed

3 files changed

+11
-3
lines changed

app/controllers/hackathon/subscriptions/bulk_controller.rb

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -7,14 +7,14 @@ class Hackathon::Subscriptions::BulkController < ApplicationController
77
# Marking subscriptions as active. Used for undoing an "Unsubscribe from all".
88
# PUT /users/:user_id/subscriptions/bulk
99
def update
10-
@subscriptions.update_all(status: :active)
10+
@subscriptions.each(&:resubscribe!)
1111
redirect_to Hackathon::Subscription.manage_subscriptions_url_for @user
1212
end
1313

1414
# Marking subscriptions as inactive.
1515
# DELETE /users/:user_id/subscriptions/bulk
1616
def destroy
17-
@subscriptions.update_all(status: :inactive)
17+
@subscriptions.each(&:unsubscribe!)
1818
redirect_to Hackathon::Subscription.manage_subscriptions_url_for @user
1919
end
2020

app/controllers/hackathon/subscriptions_controller.rb

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -18,7 +18,7 @@ def unsubscribe_all
1818
@subscriptions = @user.subscriptions.active
1919

2020
@unsubscribed_ids = @subscriptions.pluck(:id)
21-
@unsubscribe_count = @subscriptions.update_all(status: :inactive)
21+
@unsubscribe_count = @subscriptions.map(&:unsubscribe!).count(true)
2222
end
2323

2424
private

app/models/hackathon/subscription/status.rb

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -25,6 +25,14 @@ def unsubscribe_all_url_for(user)
2525
end
2626
end
2727

28+
def unsubscribe!
29+
update(status: :inactive)
30+
end
31+
32+
def resubscribe!
33+
update(status: :active)
34+
end
35+
2836
private
2937

3038
def track_changes

0 commit comments

Comments
 (0)