File tree Expand file tree Collapse file tree 3 files changed +7
-31
lines changed Expand file tree Collapse file tree 3 files changed +7
-31
lines changed Original file line number Diff line number Diff line change @@ -30,8 +30,14 @@ class Workshop < ApplicationRecord
30
30
before_validation :set_date_and_time , :set_end_date_and_time , if : proc { |model | model . chapter_id . present? }
31
31
before_validation :set_opens_at
32
32
33
+ def workshop_sponsors_with_host_true
34
+ Workshop . includes ( :workshop_sponsors ) . flat_map do |workshop |
35
+ workshop . workshop_sponsors . select { |ws | ws . host == true && ws . workshop_id == id }
36
+ end
37
+ end
38
+
33
39
def host
34
- WorkshopSponsor . hosts . for_workshop ( id ) . first &.sponsor
40
+ workshop_sponsors_with_host_true . first &.sponsor
35
41
end
36
42
37
43
def waiting_list
Original file line number Diff line number Diff line change @@ -3,7 +3,4 @@ class WorkshopSponsor < ApplicationRecord
3
3
belongs_to :workshop
4
4
5
5
validates :sponsor_id , uniqueness : { scope : :workshop_id , message : :already_sponsoring }
6
-
7
- scope :hosts , -> { where ( 'workshop_sponsors.host = ?' , true ) }
8
- scope :for_workshop , -> ( workshop_id ) { where ( 'workshop_sponsors.workshop_id = ?' , workshop_id ) }
9
6
end
Original file line number Diff line number Diff line change 6
6
. with_message ( 'already a sponsor' )
7
7
end
8
8
end
9
-
10
- context '#scopes' do
11
- context '#hosts' do
12
- it 'includes workshops with hosts' do
13
- workshop_sponsor = Fabricate ( :workshop_sponsor , host : true )
14
-
15
- expect ( WorkshopSponsor . hosts ) . to include ( workshop_sponsor )
16
- end
17
-
18
- it 'excludes workshops without hosts' do
19
- expect ( WorkshopSponsor . hosts ) . to eq [ ]
20
- end
21
- end
22
-
23
- context '#for_workshop' do
24
- it 'includes sponsors of the workshop' do
25
- workshop_sponsor = Fabricate ( :workshop_sponsor )
26
- expect ( WorkshopSponsor . for_workshop ( workshop_sponsor . workshop ) ) . to include ( workshop_sponsor )
27
- end
28
-
29
- it 'excludes sponsors not sponsoring the workshop' do
30
- Fabricate ( :workshop_sponsor )
31
- workshop = Fabricate ( :workshop_no_sponsor )
32
- expect ( WorkshopSponsor . for_workshop ( workshop ) ) . to eq [ ]
33
- end
34
- end
35
- end
36
9
end
You can’t perform that action at this time.
0 commit comments