Jarmuż dokładnie umyć. Najłatwiej jest zalać go wodą, dobrze zamieszać i wzruszyć liście i zostawić na chwilę, żeby zanieczyszczenia opadły na dno. Potem można poprawić pod bieżącą wodą.
Z jarmużu poodkrajać grube łodygi, a liście pokroić w paski. Osuszyć w suszarce do sałaty lub na ręcznikach papierowych. Cebulę pokroić w kostkę, a czosnek drobno posiekać. Na patelni rozgrzać oliwę, dodać cebulę, gdy zmięknie dodać czosnek i jarmuż. Dusić na patelni, aż wyraźnie zmniejszy objętość i zwiędnie. Dodać ricottę, sól, pieprz i pokrojoną w paski szynkę. Wszystko dokładnie wymieszać i zdjąć z ognia. Gdy troszkę przestygnie przełożyć na deskę do krojenia lub do food procesora i trochę posiekać / rozdrobnić (nie na miazgę).
Na sos pomidorowy pokroić cebulę w drobną kostkę, czosnek drobno posiekać, oliwki pokroić w paski. W rondelku rozgrzać oliwę dodać cebulę, gdy zmięknie dodać też czosnek. Po 30 sekundach dodać pomidory, ocet i cukier. Gotować ok. 10 minut, aż sos zgęstnieje. Na koniec dodać oliwki, doprawić do smaku i wymieszać.
Na beszamel w rondlu rozpuścić masło, dodać mąkę i smażyć 2-3 minuty (mąka ma pozostać jasna). Dodać mleko i zagotować często mieszając. Gdy zgęstnieje doprawić do smaku.
Do żaroodpornego naczynia nałożyć na dno sos pomidorowy. Rurki cannelloni nadziewać jarmużem z ricottą i układać na sosie. Całość zalać beszamelem.
Zapiekać ok 30-40 minut w 200st. C.
Przed podaniem odczekać ok 20 minut, aby danie mogło się "ściąć" i nie rozwalało się podczas krojenia