// app/controllers/post_controller/postcontroller.go
package postcontroller
import "context"
func (c *PostsController) Show(post *Post) error {
c.Set("post", post)
// SetLater starts loading immediately; use it where older notes say SetEventually.
c.SetLater("related_posts", func(ctx context.Context) ([]Post, error) {
return c.posts.Related(ctx, post.ID)
})
// SetWhenNeeded waits until the template first reads the value.
c.SetWhenNeeded("comment_count", func(ctx context.Context) (int, error) {
return c.posts.CommentCount(ctx, post.ID)
})
return nil
}