Перемещение логики Grails от вида к контроллеру - PullRequest
0 голосов
/ 17 августа 2011

Этот вопрос является продолжением вопроса здесь .

Приведенный ниже код взят из одного из моих представлений, и он работает нормально, но у меня возникают трудности с переносом этого кода в контроллер. Если мои пакеты и классы не понятны из кода ниже, посмотрите на предыдущий вопрос, чтобы увидеть, как они расположены.

<g:set var="roleAdmin" value='${org.me.example.userrole.Role.findByAuthority("ROLE_ADMIN")}' />
<g:set var="roleOfficeProfessional" value='${org.me.example.userrole.Role.findByAuthority("ROLE_OFFICE_PROFESSIONAL")}' />
<g:set var="roleDriver" value='${org.me.example.userrole.Role.findByAuthority("ROLE_DRIVER")}' />
<g:select name="loggedBy.id" from="${org.me.example.userrole.UserRole.findAllByRoleInList([roleAdmin, roleOfficeProfessional, roleDriver]).user}" optionKey="id" value="${loadInstance?.loggedBy?.id}"  />   

Это может быть базовое недоразумение с моей стороны, но я не могу заставить ЛЮБОЙ из методов, которые я использовал в моих контроллерах, работать в моих представлениях, только методы, которые создал Grails (то есть list, create , delete, edit и т. Д.) Будет работать. Любая помощь / рекомендации будут полезны.

1 Ответ

2 голосов
/ 17 августа 2011

Атрибуты из и value не происходят от методов / действий вашего контроллера.Обычно они поступают из объекта запроса.Я дал вам код в другом потоке, чтобы сделать это правильно, но здесь это снова, немного более подробно ...

class SomeController {

   def show = {
     def loadInstance = whateverYouGetItFrom
     def users = UserRole.findAllByRoleInList([roleAdmin, roleOfficeProfessional, roleDriver]).user
     [loadInstance:loadInstance,users:users]
   }
}

И тогда у вас будет show.gsp, который содержит

<g:select name="loggedBy.id" from="${users}" optionKey="id" value="${loadInstance?.loggedBy?.id}"  />

Если я неправильно понял ваш вопрос, пожалуйста, дайте нам более подробную информацию.

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