за да отговоря на собствения си въпрос:след известно проучване разбрах, че релсите (activerecord) се нуждаят от идентификационни полета в таблици, които са съпоставени с модели. ако използвате таблици за свързване, те не са необходими - но за маси, към които искате да се обърнете като модели, те са. в моя случай решението беше да добавя
set_primary_key :cal_id
където cal_id е моят уникален ключ.