grails - 在Grails中创建阻止的用户拦截器

标签 grails

我正在一个社交网站上,用户可以阻止其他用户。在整个站点-数十个地点中,都会显示用户信息。例如,用户评论,回复表单,在线用户列表等。问题在于,鉴于显示用户信息的场所过多,每次检查该用户是否被阻止都变得非常困难。例如:

<g:each var="comment" in="${comments}">
  <g:if test="!${loggedInUser.blockedUsers.find { it == comment.user}">
     show comment
  </g:if>
</g:each>

Grails是否提供任何有助于创建某种过滤器或拦截器的功能,使我在迭代列表等时可以简单地排除被阻止的用户?如果没有,您会建议我做什么?

最佳答案

一个好的经验法则是仅加载所需的内容,因此您的服务方法应在数据库级别过滤掉被阻止的用户。这样,您的 Controller 将变得更加简单, View 仅需显示给出的内容。

但是,如果您更喜欢拦截器,请在此处查看:

http://www.grails.org/Controllers+-+Interceptors

关于grails - 在Grails中创建阻止的用户拦截器,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2606696/

相关文章:

grails - Grails注销按钮不起作用

grails - 注册grails后检测第一个连接

grails - 在Grails中,如何使用Ant更改环境变量?

regex - 如何找到文件路径字符串的一部分?

grails - 如何将g:render与Map集合中的g:each变量一起使用?

grails - Grails 3.x 中的 Jasper

grails - Groovy中此方法的返回类型是什么?

grails - grails helloworld应用程序给出异常

unit-testing - 单元测试和重构现有 Grails 应用程序的策略

grails - 在 gsp 内部 html 中取消引用