Grails предлагает возможность автоматического создания и привязки объектов домена к списку hasMany, как описано в руководстве пользователя grails.
Итак, например, если у моего объекта домена "Автор" есть список из многих объектов "Книга", я мог бы создать и привязать их, используя следующую разметку (из руководства пользователя):
<g:textField name="books[0].title" value="the Stand" />
<g:textField name="books[1].title" value="the Shining" />
<g:textField name="books[2].title" value="Red Madder" />
В этом случае, если какая-либо из указанных книг еще не существует, Grails создаст их и соответствующим образом настроит их названия. Если в указанных индексах уже есть книги, их названия будут обновлены, и они будут сохранены. Мой вопрос: есть ли какой-то простой способ сказать Grails удалить одну из этих книг из ассоциации "books" при связывании данных?
Самый очевидный способ сделать это - опустить элемент формы, соответствующий экземпляру домена, который вы хотите удалить; к сожалению, это не работает в соответствии с руководством пользователя:
Затем Grails автоматически создаст новый экземпляр для вас в определенном должность. Если вы "пропустили" несколько элементы в середине... Затем Грайльс автоматически создаст экземпляры в между ними.
Я понимаю, что конкретное решение может быть спроектировано как часть объекта команды или как часть конкретного контроллера, однако потребность в этой функции неоднократно появляется в моем приложении, через несколько доменных объектов и для ассоциаций многих разных типы объектов. Поэтому общее решение было бы идеальным. Кто-нибудь знает, есть ли что-то подобное в Grails?