File tree 4 files changed +55
-0
lines changed
4 files changed +55
-0
lines changed Original file line number Diff line number Diff line change
1
+ class CreateInterviews::V20240317161918 < Avram::Migrator::Migration::V1
2
+ def migrate
3
+ create table_for(Interview ) do
4
+ primary_key id : Int64
5
+ add_timestamps
6
+ add_belongs_to interviewer : User , on_delete: :cascade
7
+ add_belongs_to interviewee : User , on_delete: :cascade
8
+ end
9
+ end
10
+
11
+ def rollback
12
+ drop table_for(Interview )
13
+ end
14
+ end
Original file line number Diff line number Diff line change @@ -176,4 +176,16 @@ describe "Query associations" do
176
176
177
177
result.should eq(product)
178
178
end
179
+
180
+ it " handles aliases" , focus: true do
181
+ interviewer = UserFactory .create(& .available_for_hire(false ).name(" Interviewer" ))
182
+ interviewee = UserFactory .create(& .available_for_hire(true ).name(" Interviewee" ))
183
+ UserFactory .create(& .available_for_hire(false ).name(" Employed" ))
184
+ InterviewFactory .create(& .interviewee(interviewee).interviewer(interviewer))
185
+
186
+ InterviewQuery .new
187
+ .where_interviewer(UserQuery .new.available_for_hire(false ))
188
+ .where_interviewee(UserQuery .new.available_for_hire(true ))
189
+ .to_prepared_sql.should eq(" nothing" )
190
+ end
179
191
end
Original file line number Diff line number Diff line change
1
+ class InterviewFactory < BaseFactory
2
+ def initialize
3
+ before_save do
4
+ if operation.interviewer_id.value.nil?
5
+ interviewer(UserFactory .create)
6
+ end
7
+ if operation.interviewee_id.value.nil?
8
+ interviewee(UserFactory .create)
9
+ end
10
+ end
11
+ end
12
+
13
+ def interviewer (u : User )
14
+ interviewer_id(u.id)
15
+ end
16
+
17
+ def interviewee (u : User )
18
+ interviewee_id(u.id)
19
+ end
20
+ end
Original file line number Diff line number Diff line change
1
+ class Interview < BaseModel
2
+ table do
3
+ belongs_to interviewer : User
4
+ belongs_to interviewee : User
5
+ end
6
+ end
7
+
8
+ class InterviewQuery < Interview::BaseQuery
9
+ end
You can’t perform that action at this time.
0 commit comments