I don't think this will work the way it's expected.  You're assigning @timeslot into a create action itself if it doesn't already exist.
In the next line you use @timeslot as though it's a way to FIND the timeslot.  I think it might end up causing an error?

I might be wrong, but I think there would be a conflict in the commands here.

@timeslot.reservations.create! wouldn't point to a specific Timeslot in the next line, for example.