aby odpowiedzieć na moje własne pytanie:po kilku badaniach dowiedziałem się, że rails (activerecord) potrzebuje pól id na tabelach, które są zmapowane do modeli. jeśli używasz tabel linków, nie są one potrzebne - ale w przypadku tabel, które chcesz nazwać modelami, są. w moim przypadku rozwiązaniem było dodanie
set_primary_key :cal_id
gdzie cal_id jest moim unikalnym kluczem.