2016-04-05 6 views
1

Я использую плагины полей для grails и имею проблему, когда я нахожусь в подклассе класса домена со списком строк как класс атрибута, отображается как org.grails.datastore.mapping.dirty. checking.DirtyCheckingList классПлагин Fields - таблица Grails

List view

Вот мой класс домена

class Role { 
String id 
String role 
List<String> permissions 

static constraints = { 
} 
} 

происходит также в другом мнении как шоу,

Show view

я хотел бы настроить шаблон, чтобы показать список разрешений в таблице и вид шоу, но я не нашел информацию о том, как настроить шаблон с помощью F: все теги и п : таблица тегов

Здесь индекс страницы

<!DOCTYPE html> 
<html> 
<head> 
    <meta name="layout" content="main" /> 
    <g:set var="entityName" value="${message(code: 'role.label', default: 'Role')}" /> 
    <title><g:message code="default.list.label" args="[entityName]" /></title> 
</head> 
<body> 
    <a href="#list-role" class="skip" tabindex="-1"><g:message code="default.link.skip.label" default="Skip to content&hellip;"/></a> 
    <div class="nav" role="navigation"> 
     <ul> 
      <li><a class="home" href="${createLink(uri: '/')}"><g:message code="default.home.label"/></a></li> 
      <li><g:link class="create" action="create"><g:message code="default.new.label" args="[entityName]" /></g:link></li> 
     </ul> 
    </div> 
    <div id="list-role" class="content scaffold-list" role="main"> 
     <h1><g:message code="default.list.label" args="[entityName]" /></h1> 
     <g:if test="${flash.message}"> 
     <div class="message" role="status">${flash.message}</div> 
    </g:if> 
    <f:table collection="${roleList}" /> 

    <div class="pagination"> 
     <g:paginate total="${roleCount ?: 0}" /> 
    </div> 
</div> 
</body> 
</html> 

И показать страницу

<!DOCTYPE html> 
<html> 
<head> 
    <meta name="layout" content="main" /> 
    <g:set var="entityName" value="${message(code: 'role.label', default: 'Role')}" /> 
    <title><g:message code="default.show.label" args="[entityName]" /></title> 
</head> 
<body> 
    <a href="#show-role" class="skip" tabindex="-1"><g:message code="default.link.skip.label" default="Skip to content&hellip;"/></a> 
    <div class="nav" role="navigation"> 
     <ul> 
      <li><a class="home" href="${createLink(uri: '/')}"><g:message code="default.home.label"/></a></li> 
      <li><g:link class="list" action="index"><g:message code="default.list.label" args="[entityName]" /></g:link></li> 
      <li><g:link class="create" action="create"><g:message code="default.new.label" args="[entityName]" /></g:link></li> 
     </ul> 
    </div> 
    <div id="show-role" class="content scaffold-show" role="main"> 
     <h1><g:message code="default.show.label" args="[entityName]" /></h1> 
     <g:if test="${flash.message}"> 
     <div class="message" role="status">${flash.message}</div> 
    </g:if> 
    <f:display bean="role" /> 
     <g:each var="permission" in="${role.permissions}"> 
     <li>${permission}</li> 
     </g:each> 
<g:form resource="${this.role}" method="DELETE"> 
<fieldset class="buttons"> 
    <g:link class="edit" action="edit" resource="${this.role}"><g:message code="default.button.edit.label" default="Edit" /></g:link> 
    <input class="delete" type="submit" value="${message(code: 'default.button.delete.label', default: 'Delete')}" onclick="return confirm('${message(code: 'default.button.delete.confirm.message', default: 'Are you sure?')}');" /> 
</fieldset> 
</g:form> 
</div> 
</body> 
</html> 

ответ

0

Тэги <f:table> и <f:all> предоставляются плагином Fields. Здесь вы можете найти документацию для них (это скоро будет связано с документами Grails) http://grails-fields-plugin.github.io/grails-fields/guide/introduction.html

Возможно, вам придется настроить шаблоны для лесов, чтобы поддерживать то, что вы делаете - я не уверен, что плагин Fields поддерживает список которое не является частью hasMany. Вы можете настроить шаблоны, создав их (добавив их в свой проект), как описано здесь: https://grails.github.io/grails-doc/latest/ref/Command%20Line/install-templates.html

+0

Я думаю, что это проблема, потому что я использую mongodb для настойчивости, а иногда мне не нужна связь 'hasMany' , я попытался настроить шаблоны, но они используют те же '' и '' теги, поэтому я попытался настроить рендеринг полей [это объясняется здесь] (http://grails-fields-plugin.github.io/grails- поля/руководство/customizingFieldRendering.html) безуспешно –