abych odpověděl na svou vlastní otázku:po nějakém výzkumu jsem zjistil, že rails (activerecord) potřebuje pole id na tabulkách, které jsou mapovány na modely. pokud používáte linktables, nejsou potřeba - ale pro tabulky, které chcete oslovit jako modely, jsou. v mém případě bylo řešením přidat
set_primary_key :cal_id
kde cal_id je můj jedinečný klíč.