Jim*_*mmy 6 grails groovy grails-orm grails-2.0
这是我的域名模型,调查有很多问题,每个问题都有很多回复:
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 = {
}
}
Run Code Online (Sandbox Code Playgroud)
在我的控制器中,我有一个方法,它接收调查的ID,查找它,然后从另一个请求参数构建一个问题,尝试将问题添加到调查并保存:
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])
}
Run Code Online (Sandbox Code Playgroud)
但是,它失败并返回:
方法的无签名:)roosearch.Survey.addToQuestions(为参数类型是适用的:(roosearch.SurveyQuestion)值:[roosearch.SurveyQuestion:空]可能的解决方案:addToQuestions(java.lang.Object中),getQuestions()
我不太明白我在这里做错了什么,我已经尝试了各种替代方法来创建问题,甚至用文字字符串手动实例化一个,但它总是给出相同的错误.
有人可以告诉我吗?
谢谢
(我没有足够的观点来发表评论,所以我会“回答”)。
首先,它看起来确实“不错”。
我学会了从表面上看待错误消息。由于某种原因,它认为“问题”为空。我猜您可以插入一些日志记录,然后发现事实并非如此。
此时,我会先尝试保存问题,查看它是否正确保存并获得分配和 ID,然后调用 addToQuestions。
| 归档时间: |
|
| 查看次数: |
2052 次 |
| 最近记录: |