2013-06-26 34 views
0

如何根據用戶是否已經喜歡它來設置狀態和狀態不同?我是否需要使用標準或動態查找程序或gsp中的每個循環來找出像和不同的?在grails中檢索狀態更新項目狀態的條件或動態查找器

我的應用程序的模式是這樣的:

Status域中有很多likes
like屬於userstatus
user有許多statuslikes

<g:each in="${statusInstanceList}" status="i" var="statusInstance"> 
${fieldValue(bean: statusInstance, field: "statusMessage")} 

<g:each var="likeInstance" in="${statusInstance.like}"> 
    <g:set var="likesSize" value="${statusInstance.like?.size()}"/> 
    $likesSize 
</g:each> 

</g:each> 

$likesSize輸出喜歡的計數一個地位。 (感謝@dmahapatro)

我需要找出,如果會話用戶已經喜歡的狀態已經或沒有,並顯示/不同於其基礎。

更新:現在我不喜歡,如果我使用下面,如果語句 我怎麼能限制它只顯示不像或喜歡?

<g:each in="${statusInstance.like?.userAccountId}" status="p" var="userlike"> 
         <g:if test="${userlike == session.selectedUser?.id || statusInstance.like?.statusId == statusInstance.id}"> 
         Unlike 
         </g:if> 
         Like 
         </g:each> 

回答

1

我只是拋出一個想法:

user.like會給你一個用戶的所有喜好。
status.like會給你所有喜歡的狀態。

您是否無法知道用戶喜歡是否也是一種狀態?

您需要找出屬於UserStatusLike

+0

是的,所以要得到那個我應該運行這個標準?或者動態取景器能夠爲我做到這一點? 還是有其他方法我應該使用? – desicreatioNZ

+0

我覺得動態查找是一種簡單化的方法。 Criteria/HQL用於你有各種關聯,並且你希望所有這些關聯。再次,無論你做什麼,都要在控制器中進行設置,並將其設置爲可在視圖層訪問的模型,而不是在gsp中包含大量的常規代碼。 :) – dmahapatro

+0

請檢查主要問題的底部?更新! @dmahapatro – desicreatioNZ

0

它看起來像你可以使用一個簡單的動態取景器。

Like.findByUserAndStatus(user, status) 

如果這返回結果,那麼用戶已經喜歡狀態。

+0

請查看主要問題的底部?更新! @亞當 – desicreatioNZ