代码之家  ›  专栏  ›  技术社区  ›  Visionary Software Solutions

在Grails列表上的groovy-不工作?

  •  0
  • Visionary Software Solutions  · 技术社区  · 15 年前

    Removing an element from a list 不起作用,这没有任何意义。我是否缺少处理Grails域对象列表所特有的一些特殊语义?

    在控制器中:

    def userCreate = {
        def workgroupInstance = new Workgroup()
        workgroupInstance.manager = authUserDomain
        flash.message = User.list().toString()
        def usersWithoutThisOne = User.list() - authUserDomain
        flash.message = flash.message + "removed ${authUserDomain}, new list is ${usersWithoutThisOne}"
        return ['workgroupInstance':workgroupInstance, 'users':usersWithoutThisOne]
    }
    

    结果显示在flash.message中。

    [Boogie,Toogie,Choogie,cookie]删除了Boogie,新列表是[Boogie,Toogie,Choogie,cookie]

    3 回复  |  直到 15 年前
        1
  •  2
  •   Blacktiger    15 年前

    如果要永久地从工作组中删除用户,则需要使用Grails removeFrom 函数来除去存储在中的类有许多关联。

        2
  •  4
  •   leebutts    15 年前

    AuthUserDomain来自何处?

    如果您尚未对用户(基于用户名或其他唯一标识)实现customn.equals(),则它可能不是通过user.list()返回的同一对象。只有当元素与使用.equals()的现有对象匹配时,才会删除该元素。

        3
  •  0
  •   Dirk    15 年前

    我对这个不太确定。现在没有可用的groovy解释器。但是IIRC和AS this article 建议 - 在列表中,需要对两个列表进行操作,即,

    list - other
    

    实际上更像

    list.removeAll(other)
    

    (用Java术语),不是故意的

    list.remove(other)
    

    你可以试试

    modifiedList = originalList - [elementToRemove]