Я думаю, что проблема, с которой вы можете столкнуться, заключается в том, что когда такой элемент выбран либо в поле выбора, либо с помощью флажков, то никакие данные не возвращаются с запросом к контроллеру.Если вы хотите иметь возможность удалить все объекты из ассоциации, вам нужно добавить в форму дополнительное скрытое поле.
Например, если существует продукт, имеющий много категорий, добавьте следующее:
<g:hiddenField name="categories" value=""/>
отдельно от обычного select
.
Вы можете написать тест для контроллера, чтобы убедиться, что желаемая функциональность работает так, как ожидалось.