この例は、grails ドキュメントからのものです。
def emeaCriteria = {
eq "region", "EMEA"
}
def results = Airport.withCriteria {
emeaCriteria.delegate = delegate
emeaCriteria()
flights {
like "number", "BA%"
}
}
私の Web ページは、民族のチェックボックス グループを返し、行 ID を返します。したがって、サーバーが取得するものは次のとおりです。
ethnicity:[1, 4]
または、ユーザーが 1 つの民族のみを選択した場合:
ethnicity:4
def criteria = { params ->
//handle case where only one ethnicity is returned as just a string, not a list of strings
def list = params.ethnicty instanceof String ? [params.ethnicty] : params.ethnicity
if (list) {
inList('ethnicity', list)
}
}
エラーが発生しました: java.lang.String は java.lang.Enum にキャストできません。
リストがなければ、私はそれを理解できると思います。パラメータは文字列値を送り返しているため、列挙型クラスに変換する必要があります。しかし、クロージャ内で、各エントリを列挙型のリストに変換するにはどうすればよいでしょうか?