我是Grails的新人。我正在使用Rateable Plugin在我的圣杯应用程序中集成用户评级功能。我这样做......
安装
grails install-plugin rateable
我的Post.groovy Domain类---
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评级)。我不知道为什么我的评级没有保存在db中。我正在使用Spring Security Core Plugin进行身份验证。任何建议???
更新:---
我在我的Config.groovy文件中添加了grails.rateable.rater.evaluator = { request.user }
行。但它显示出错误:
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
答案 0 :(得分:1)
我正在使用Spring Security Core Plugin进行身份验证
在这种情况下,您可能需要类似
的内容grails.rateable.rater.evaluator = {
grailsApplication.mainContext.springSecurityService.currentUser
}