Iは、次のエンティティとアプリケーションを持っていますトピックをユーザーに問い合わせる:基準のGrails
def visibleTopics = Topic.findAllByVisibility(true, [sort:"name", order:"asc"])
このクエリは、たとえば[['English'], ['Spanish']]
のように返します。次に、各トピックに関する完全な情報をユーザーに表示できます。
しかし、表示可能な各トピックのアクティブなテストの数をユーザーに示したいと考えています。例えば
:
English topic has 2 active test.
Spanish topic has a total of 2 test. One is active and the other is not.
German topic has not any active test.
そして私は、その結果であるクエリを必要とする:def activeTotalEachTopic = [[2],[1],[0]]
及びIビュー(.gsp)にactiveTotalEachTopic
変数を渡すことができます。
ソリューション:
私はすべての可視トピックを得ることができます最初のクエリから、私は、アクティブなテストの数を取得します。
def visibleTopics = Topic.findAllByVisibility(true, [sort:"name", order:"asc"])
def numberActiveTest = []
activeTopics.each { topic ->
def result = Test.findAllByTopicAndActive(topic, true).size()
numberActiveTest.push(result)
}
そして両方の変数を表示します。
render view: 'home', model: [activeTopics: activeTopics, numberActiveTest: numberActiveTest]
ありがとう。完全には機能しません。したがって、アクティブなテストのトピックのみを表示するので、 '[[English '、2]、[' Spanish '、1]]'となります。 **ドイツのトピック**はリストにありません。 –
OK、問題を解決しました。問題は、関連するテストがない場合、 't.active'がnullになり、その結果、条件が失敗することです。だから、ヌルチェックで修正されます。 –
問題は引き続き発生します。アクティブなテストのないトピックは表示されません。投影セクションを省略すると、2つのトピックのみが表示されます。 3番目は表示されません(ドイツ語)。 –