有没有办法过滤静态支架的list方法的结果?

时间:2019-06-25 18:28:37

标签: grails

在采购系统的gsp文件的选择标签中试图过滤掉一些委员会名称的时间太长了。

我正在尝试为我的客户提供一项功能,该功能可以过滤名为“ MANAGEMENT”的Committee(Domain)实例。

我已经尝试过:

${Committee.list().findAll{it.name != 'MANAGEMENT'}}

并尝试过滤控制器中的列表,但我这样称呼它:select标签中的from="${Committee.list()}",我不知道如何覆盖默认的list方法

<li>
    <g:select class="btn bg-info" dir="rtl" id="commDDLid" name="committeeDDL" action="filterByCommittee"
              controller="management" from="${Committee.list()}" optionKey="id" optionValue="${name}"
              value="${committees}" noSelection="${['null':'..']}"
              onchange="goToCommittee(this.value)"/>
</li>

在固定脚手架后,CommitteeController保持不变。 委员会域类:

package attainrvtwo

class Committee {

    CommitteeOf name

    static hasMany = [summaries: Summary, users: User]
    static belongsTo = [department: Department]

    static constraints = {
        name()
        department()
        summaries(nullable: true)
    }

    @Override
    String toString() {
        return getName()
    }
}

CommitteeOf.groovy:

package attainrvtwo

enum CommitteeOf {
    EARLY_CHILDHOOD_EDUCATION,
    SOLDIERS,
    SPORT,
    MAINTENANCE,
    CULTURE,
    TRADITION,
    ENVIRONMENT_AND_COMMUNITY,
    STURDINESS,
    SPIRIT_AND_COMMUNITY,
    FIFTY_FIVE_PLUS,
    REGIONAL_PARTNERSHIP,
    DOGS,
    YOUTH,
    REVIEW,
    SECURITY,
    TZACHI,
    ARCHIVE,
    MANAGEMENT
}

我希望Committee.list()仅返回aren't名为管理的委员会

1 个答案:

答案 0 :(得分:2)

您必须使用列表吗?

findAllBy例如

Committee.findAllByNameNotEqual( 'MANAGEMENT' )