试图按照所示的示例here我试图创建一个链接到父记录的记录。Grails - 不能添加子记录到父
在我的情况下,我有两个类:传感器和读物。我可以在没有任何问题的情况下创建传感器,但无论我如何尝试创建读数,我似乎都失败:(
我一直在旋转我的轮子足够长时间,我在扔毛巾,希望有人能够发现我的愚蠢错误
还有一件事 - 我想使用JSON发布数据,但通过调试过程我甚至没有看JSON值,我已经硬编码它们,它仍然没有“T工作。
ReadingsController.groovy
package grailshelloworld
import grails.converters.JSON
import groovy.json.JsonSlurper
class ReadingsController {
def scaffold=Readings
def save = {
def slurper = new JsonSlurper()
def result = slurper.parseText(request.reader.text)
def s = new Sensor (sensorid: "SID", sensorname: "name", sensordescription: "description")
.addToReadings(reading: "blah")
.save()
render ([ok: false] as JSON)
}
}
sensor.groovy
package grailshelloworld
class Sensor {
String sensorid
String sensorname
String sensordescription
static hasMany = [readings: Readings]
static constraints = {
sensorid blank:false, nullable: false
sensorname blank:false, nullable: false
}
}
Readings.grooovy
package grailshelloworld
import java.util.Formatter.DateTime;
class Readings {
String reading
static belongsTo = [sensor: Sensor]
}
当前错误:参数类型不匹配......
<dt>Class</dt><dd>java.lang.IllegalArgumentException</dd><dt>Message</dt><dd>argument type mismatch</dd></dl><h2>Around line 15 of <span class="filename">grails-app/controllers/grailshelloworld/ReadingsController.groovy</span></h2>
<pre class="snippet"><code class="line"><span class="lineNumber">12:</span> def slurper = new JsonSlurper()</code><code class="line"><span class="lineNumber">13:</span> def result = slurper.parseText(request.reader.text)</code><code class="line"><span class="lineNumber">14:</span></code><code class="line error"><span class="lineNumber">15:</span> def s = new Sensor (sensorid: "SID", sensorname: "name", sensordescription: "description")</code><code class="line"><span class="lineNumber">16:</span> .addToReadings(reading: "blah")</code><code class="line"><span class="lineNumber">17:</span> .save()</code><code class="line"><span class="lineNumber">18:</span></code></pre><h2>Around line 195 of <span class="filename">PageFragmentCachingFilter.java</span></h2>
不是'addToReadings'将父项添加到父项?你把它叫做一个父母的传感器。也许你应该创建'Readings'并将其添加到'Sensor'? – nidu
你能告诉我们你的JSON看起来像什么吗?由于错误出现在您的parseText调用中,因此可能是JSON的问题。 – Gregg
@nidu - 代码甚至在引发错误之前还没有到达。只要具有阅读的阅读:“blah”实际存在,grails就允许使用该语法。 – Gregg