om mijn eigen vraag te beantwoorden:na wat onderzoek kwam ik erachter dat rails (activerecord) id-velden nodig heeft op tabellen die zijn toegewezen aan modellen. als je linktables gebruikt, zijn ze niet nodig - maar voor tabellen die je als model wilt adresseren, zijn ze dat wel. in mijn geval was de oplossing om toe te voegen
set_primary_key :cal_id
waarbij cal_id mijn unieke sleutel is.