Можете ли вы использовать динамические искатели или группировать таблицы через скаффолд в Grails? - PullRequest
1 голос
/ 12 августа 2010

Я работаю над очень, очень быстрым и грязным приложением, используя для этого почти полностью скаффолд. Это только для внутреннего использования, и это просто для того, чтобы заменить электронную таблицу, поэтому, хотя я знаю, что не должен полагаться на строительные леса для реального производственного использования, я все же намерен использовать их там, где это возможно, для эффективности (... просто хотел убедитесь, что нас не сбивает с толку неизбежный вопрос!).

Что меня интересует, так это то, что скаффолды могут выполнять быстрое и грязное CRUD, и вы можете делать динамические искатели для поиска, есть ли способ динамически показать «список» действий скаффолда с ограничением (то есть показать все элементы в списке, которые были созданы этим "пользователем")? Это было бы хорошо для меня ...

В качестве альтернативы, в Grails есть что-то, что позволяет "группировать" таблицы. По сути, это действие «список» из скаффолда, но сгруппированное по определенному атрибуту (опять же, подумайте о группировке всех элементов пользователем, который их создал).

Буду признателен за любую помощь - я безуспешно искал Google и некоторые книги, но хотел бы посоветоваться с сообществом StackOverflow, прежде чем отвергнуть эту идею и написать ее от руки. Спасибо!

1 Ответ

1 голос
/ 13 августа 2010

Мы сделали то же самое в нашем приложении Grails, и это относительно просто:

  1. Создать новую форму в list.gsp, ссылаясь на действие списка <g:form action="list" method="post">
  2. Внутри этой формы объявите таблицу с полями, по которым вы хотите искать:

<div class="buttons"> <span class="button"><g:submitButton name="list" class="search" value=" ${message(code: 'default.button.search.label', default: 'Search')}"/></span> </div>

  1. В действии со списком создайте запрос (используя findAll, findWhere, ... все, что вам нравится) и верните его на страницу:

[wardInstanceList : Ward.findAll(whereClause, [max: params.max, offset: params.offset]) , wardInstanceTotal : (int) Ward.executeQuery("select count(*) " + whereClause).get(0)]

WhereClause выглядит примерно так: "from Ward where ward = 'something' and room = 'something else'"

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...