1

我是 Grails 的新手。我正在使用Rateable Plugin在我的 grail 应用程序中集成用户评分功能。我正在这样做......

安装

grails install-plugin rateable

我的 Post.groovy 域类 ---

package groovypublish

import org.grails.twitter.Person
import org.grails.rateable.*

class Post implements Rateable {

static hasMany = [comments:Comment]

String title
String teaser
String content
Date lastUpdated
Boolean published = false
SortedSet comments
Person author

static searchable = [only: 'title']

static constraints = {
    title(nullable:false, blank:false, length:1..50)
    teaser(length:0..100)
    content(nullable:false, blank:false)
    lastUpdated(nullable:true)
    published(nullable:false)
}
}

我在 _post.gsp 文件中使用的标记...

<rateable:ratings bean='${post}'/>

我的评分星是这样显示的...

在此处输入图像描述

当用户给出评分时,它会显示如下..

在此处输入图像描述

但评分未保存在数据库中。

当我再次刷新页面时,它显示(0 评分)。我不知道为什么我的评分没有保存在数据库中。我正在使用Spring Security Core Plugin进行身份验证。有什么建议吗???

更新:---

grails.rateable.rater.evaluator = { request.user }我在我的 Config.groovy 文件中添加了一行。但它显示错误:

URI
  /groovypublish/rateable/rate/1
Class
  org.grails.rateable.RatingException
Message
  No [grails.rateable.rater.evaluator] setting defined or the evaluator doesn't evaluate to an entity. Please define the evaluator correctly in grails-app/conf/Config.groovy or ensure rating is secured via your security rules
4

1 回答 1

1

我正在使用 Spring Security Core Plugin 进行身份验证

在这种情况下,您可能想要类似的东西

grails.rateable.rater.evaluator = {
  grailsApplication.mainContext.springSecurityService.currentUser
}
于 2013-07-10T11:28:36.520 回答