Как исправить ошибку внутреннего сервера grailed error 500 для «Нет такого свойства. «» для класса»

#grails #groovy #virtual-machine

#grails #groovy #виртуальная машина

Вопрос:

Я просто создаю веб-сайт на grails, и у меня просто возникают проблемы с созданием формы поиска

У меня есть система, в которой я могу искать пациентов по созданным мной данным.

Я настроил форму, страницу поиска, страницу результатов и файл контроллера, и все работало хорошо, пока страница результатов не выдала эту ошибку.

Имя класса домена является терпеливым, поэтому оно должно быть установлено правильно.

Просто кажется, что файл контроллера и страница результатов не соединяются

Полная ошибка, которую я получаю, это;

 URI /patient/advResults
Class groovy.lang.MissingPropertyException
Message null
Caused by No such property: patients forclass:grails.orm.HibernateCriteriaBuilder
  

Вот код для моей страницы результатов;

 Searched

for patients matching <em>${term}</em>.

Found <strong>${patients.size()}</strong> patients.

</p>



<ul>

<g:each var="patient" in="${patients}">

<li><g:link controller="Patient" action="show" 
id="${patient.id}">${patient.patientName}</g:link></li>

</g:each>
  

Это то, что я написал в файле контроллера;

 def advResults() {
def patientProps = Patient.metaClass.properties*.name
def patients = Patient.withCriteria {
"${params.queryType}" {
params.each { field, value ->
 if (patientProps.grep(field) amp;amp; value) {
ilike(field, value)
}
}
}
return [ patients : patients ]
}
}
  

Ответ №1:

Я думаю, вам следует сместить строку

 return [ patients : patients ]
  

1 строка вниз. Теперь вы возвращаетесь изнутри withCriteria{} закрытия…

Комментарии:

1. Гениально! спасибо, не знаю, почему я так не думал