0

ここに示す例に従って、親レコードにリンクするレコードを作成しようとしています。

私の場合、Sensor と Readings の 2 つのクラスがあります。問題なくセンサーを作成できますが、読み取り値を作成しようとしても失敗するようです:(

私は長い間車輪を回してきましたが、タオルを投げ入れて、誰かが私のばかげた間違いを見つけてくれることを願っています.

もう 1 つ、JSON を使用してデータを投稿したいと考えています。しかし、デバッグ プロセスを通じて、JSON 値を確認することさえせず、それらをハード コーディングしましたが、それでも機能しません。

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)


    }
}

センサーグルービー

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.groovy

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: &quot;SID&quot;, sensorname: &quot;name&quot;, sensordescription: &quot;description&quot;)</code><code class="line"><span class="lineNumber">16:</span>           .addToReadings(reading: &quot;blah&quot;)</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>
4

1 に答える 1

1

明示的に新しいものを作成して試してみましたReadingsか?

def s = new Sensor (sensorid: "SID", sensorname: "name", sensordescription: "description")
                    .addToReadings(new Readings(reading: 'blah'))
                    .save()

def s = ...エラーは、ステートメントの開始である「15行目あたり」と言っています。

ドキュメントには、あなたが試みている方法でそれを行うことができると書かれていることは知っていますが、試してみる価値はあります。

于 2012-12-14T21:34:19.413 に答える