В поисках решения проблемы двухдоменных классов в одном представлении я наткнулся на учебник по scaffolding для grails, где я увидел это:
class BookController {
def scaffold = Book
// overrides scaffolded action to return both authors and books
def list = {
[ "books" : Book.list(), "authors": Author.list() ]
}
}
А под ним написано:
All of this is what is known as "dynamic scaffolding" where the CRUD interface is generated dynamically at runtime.
Я совершенно новичок в концепции строительных лесов, и есть кое-что, чего я здесь не понимаю. Я ожидаю, что list.gsp генерируется динамически на основе возвращаемых параметров контроллера, что позволяет мне иметь оба списка в одном представлении. Я не знаю, возможно ли это, просто я ожидаю, что это произойдет здесь волшебным образом. Поэтому, пожалуйста, поправьте меня, если я ошибаюсь.
Если это так, то в моем приложении что-то идет не так, и я получаю:
org.codehaus.groovy.grails.web.pages.exceptions.GroovyPagesException: Error processing GroovyPageView: Tag [paginate] is missing required attribute [total] at /customer/list:45
Так что это что-то в представлении, которого у меня нет, потому что я ожидаю, что это будет подмостей. Может быть, ошибка вызвана тем, что я использую шаблоны по умолчанию? Должен ли я создать новый шаблон специально для моих нужд? Кроме того, есть ли какая-то статья на жизненном цикле Грааля, чтобы я мог видеть, что проходит, когда?
Спасибо всем за помощь,
аль