Пропустить список доменов для просмотра с удаленным элементом

Я использую grails 1.3.7.

У меня есть следующий домен:

class Category {

    String name;
    String categoryKey;

    Date dateCreated
    Date lastUpdated

    static constraints = {
        name(blank: false, nullable: false, maxSize:30)
        categoryKey(blank: false, nullable: false, maxSize:30)
    }

    String toString()
    {
        return name
    }
}

Я показываю список категорий в gsp следующим образом:

 

Мне нужно отобразить список с удаленным одним из его элементов (где свойство categoryKey равно OTHER).

def Category categoryList = Category
//categoryList.categoryKey.remove("OTHER") How to remove here maybe?
return [dealInstance: dealDetails, categoryList: categoryList ]

Как я могу удалить это в своем контроллере и передать новый список (минус OTHER) в gsp?

благодаря

0
nl ja de

3 ответы

Вы можете использовать findAll и используйте закрытие для проверки объекта, который вы хотите удалить.

Из документации:

assert [2,4] == [1,2,3,4].findAll { it % 2 == 0 }

Таким образом, вы можете сделать что-то вроде:

categoryList.findAll { << return false if 'it' is of type 'OTHER', otherwise true >> }

Вы также можете использовать этот oneliner прямо в своем представлении, если хотите.

0
добавлено
Спасибо, мича. Я получаю следующую ошибку с помощью <>: Groovy: неожиданный токен: <@ строка 48, столбец 41.
добавлено автор Thomas Buckley, источник
Просто переделал этот мича! По электронной почте Ой!
добавлено автор Thomas Buckley, источник
Итак, у меня есть следующая micha: def Категория categoryList = Category.findAll {! It.categoryKey.equals ('OTHER')}, но я получаю ошибку "groovy.lang.MissingMethodException: Нет сигнатуры метода: com.deals.Category.findAll() применимо для типов аргументов: ". Есть идеи? - Томас Бакли 5 мин назад
добавлено автор Thomas Buckley, источник
Понял. Спасибо за вашу помощь Мича. def categoryList = Category.list (). findAll {! it.categoryKey.equals ('OTHER')}
добавлено автор Thomas Buckley, источник
Вы только что скопировали мой код в свой файл? Внутри <..> это просто псевдокод, потому что я не знал структуру вашего объекта в деталях. Вы должны заменить его собственным выражением фильтра.
добавлено автор micha, источник
findAll - это функция коллекции. Поэтому вам нужно позвонить в свой список. Например <список, который вы хотите отфильтровать> .findAll {..} .
добавлено автор micha, источник

Вы можете использовать findAll и используйте закрытие для проверки объекта, который вы хотите удалить.

Из документации:

assert [2,4] == [1,2,3,4].findAll { it % 2 == 0 }

Таким образом, вы можете сделать что-то вроде:

categoryList.findAll { << return false if 'it' is of type 'OTHER', otherwise true >> }

Вы также можете использовать этот oneliner прямо в своем представлении, если хотите.

0
добавлено
Спасибо, мича. Я получаю следующую ошибку с помощью <>: Groovy: неожиданный токен: <@ строка 48, столбец 41.
добавлено автор Thomas Buckley, источник
Просто переделал этот мича! По электронной почте Ой!
добавлено автор Thomas Buckley, источник
Итак, у меня есть следующая micha: def Категория categoryList = Category.findAll {! It.categoryKey.equals ('OTHER')}, но я получаю ошибку "groovy.lang.MissingMethodException: Нет сигнатуры метода: com.deals.Category.findAll() применимо для типов аргументов: ". Есть идеи? - Томас Бакли 5 мин назад
добавлено автор Thomas Buckley, источник
Понял. Спасибо за вашу помощь Мича. def categoryList = Category.list (). findAll {! it.categoryKey.equals ('OTHER')}
добавлено автор Thomas Buckley, источник
Вы только что скопировали мой код в свой файл? Внутри <..> это просто псевдокод, потому что я не знал структуру вашего объекта в деталях. Вы должны заменить его собственным выражением фильтра.
добавлено автор micha, источник
findAll - это функция коллекции. Поэтому вам нужно позвонить в свой список. Например <список, который вы хотите отфильтровать> .findAll {..} .
добавлено автор micha, источник

Вы можете обновить toString() в домене grails, чтобы сделать это.

in toString() return name + "," + categoryKey + "," + lastUpdated

Я показываю поля без dateCreated.

Вы можете отображать поля, используя вышеуказанный код в соответствии с требованиями ur.

0
добавлено
pro.jvm
pro.jvm
3 503 участник(ов)

Сообщество разработчиков Java Scala Kotlin Groovy Clojure Чат для нач-их: @javastart Наш сайт: projvm.com projvm.ru Наш канал: @proJVM Вакансии: @jvmjobs Конфы: @jvmconf

Ruby, Rails, Hanami | dry-rb
Ruby, Rails, Hanami | dry-rb
1 180 участник(ов)

https://telegram.me/rubyjob - Ruby Job По вопросам - @eugene_shved

Rubyata
Rubyata
333 участник(ов)

Коммюнити Ruby и Ruby On Rails Флуд не приветствуются. Вакансии можно публиковать только и ТОЛЬКО по пятницам с хештегом #вакансия.

Rails Chat
Rails Chat
87 участник(ов)

You are welcome to discuss Ruby On Rails development process and other stuff