Это моя доменная модель, в опросе много вопросов, и на каждый вопрос есть много ответов:
class Survey {
String name
String customerName
static hasMany = [questions: SurveyQuestion]
static constraints = {
}
}
class SurveyQuestion {
String question
static hasMany = [responses : SurveyQuestionResponse]
static belongsTo = [survey: Survey]
static constraints = {
}
}
class SurveyQuestionResponse {
String description
static belongsTo = [question: SurveyQuestion]
static constraints = {
}
}
В моем контроллере есть метод, который принимает идентификатор опроса, ищет его, затем создает вопрос из другого параметра запроса, пытается добавить вопрос в опрос и сохранить его :
def addQuestion =
{
def question = new SurveyQuestion(question:params.question)
def theSurvey = Survey.get(params.id)
theSurvey.addToQuestions(question) //fails on this line
theSurvey.save(flush:true)
redirect(action: showSurvey, params:[id:theSurvey.id])
}
. Однако,он терпит неудачу и возвращает это:
No signature of method: roosearch.Survey.addToQuestions() is applicable for argument types: (roosearch.SurveyQuestion) values: [roosearch.SurveyQuestion : null] Possible solutions: addToQuestions(java.lang.Object), getQuestions()
Я не совсем понимаю, что я здесь делаю неправильно, я пробовал различные альтернативные способы создания вопроса, даже создавая его вручную с помощью буквальной строки, но он всегда дает одну и ту же ошибку.
Кто-нибудь может мне посоветовать?
Спасибо