An approach I've been using is not to use "collection", and do the iteration in the template. If you want to render only one, you can just pass a list of one element.
comment.gsp
<g:render template="comments" model="[comments: comments]"/>commentDetails.gsp
<g:render template="comments" model="[comments: [comment]]"/>_comments.gsp
<g:each var="comment" in="${comments}" status="index">
${comment.message}
</g:each>