У меня есть составной доменный объект следующим образом:
class Person
{
static embedded = ['forSale']
Boolean isSelling
House forSale
}
class House
{
Integer numBedrooms
}
У меня есть выбор элемента управления для numBedrooms следующим образом:
<tr class="prop">
<td valign="top" class="name">
<label for="numBedrooms"><g:message code="person.numBedrooms.label" default="Num Bedrooms" /></label>
</td>
<td valign="top" class="value ${hasErrors(bean: personInstance, field: 'forSale.numBedrooms', 'errors')}">
<g:select name="numBedrooms" value="${fieldValue(bean: personInstance, field: 'forSale.numBedrooms')}"
noSelection="${['null':'Select a number...']}"
from="${1..6}"
/>
</td>
</tr>
Обратите внимание, что я использую forSale.numBedrooms в поле Value на select. Я не смог создать скаффолдинг-код для этого, чтобы взглянуть на то, как это должно быть сделано, потому что представление create, генерируемое create-views, не содержит ссылок на поля в объекте forSale House.
У меня также не было возможности найти какие-либо примеры составных полей, доступ к которым осуществляется через GSP, так что это немного предположение. В любом случае страница GSP отображается без ошибок, хотя это может быть связано с тем, что мне не удалось сохранить какие-либо данные.
Я отправляю значение numBedrooms обратно как часть строки запроса URl ...
& numBedrooms = 2
Когда я делаю это, код сохранения в моем контроллере молча терпит неудачу - по крайней мере, ничего никогда не записывается в базу данных. Я включил ведение журнала отладки для почти всего, но я не получаю сообщений в журнале, которые предполагают, что что-то не так, хотя что-то, очевидно, так.
Если я удаляю параметр numBedrooms из строки запроса, то мое сохранение выполняется как обычно, поэтому я предполагаю, что это как-то связано с разрешением numBedrooms.
Любая подсказка, что я делаю неправильно и что я могу сделать, чтобы отследить мою проблему?