私は「モノ」ドメイン クラスを持っています。各モノには、ユーザーがモノにアクセスするために使用するレコード番号 (自動的に生成された ID ではありません) があります。
class Thing {
...
String recordNumber
...
}
そのレコード番号を知って、モノを探すためのフォームがあります:
<g:form action="search">
<input name="recordNumber">
<g:submitButton name="btn" value="go to this Thing"/>
</g:form>
この形式で検証プロセスを使用したいと思います。recordNumber が見つからない場合 ( Thing.findByRecordNumber(recordNumber) == null
)、入力フィールドが赤くなり、ツールチップに「レコード番号が見つかりません」というエラー メッセージが表示される必要があります。
私が知っている/読んだ限り(私はgrailsの新人です)、これはThingクラスの制約として書かれなければなりません:
static constraints = {
recordNumber validator: { n -> Thing.findByRecordNumber(recordNumber) }
}
問題は、このフォームには入力するすべての「モノ」プロパティがなく、recordNumber 1 だけなので、呼び出すことができないことです。
new Thing(params).validate()
オブジェクト全体ではなく、1 つのフィールドだけで検証を呼び出す方法は?