Grails Rateable Plugin不会在数据库中保存评级

时间:2013-07-10 07:41:30

标签: grails grails-plugin grails-2.0 gsp grails-domain-class

我是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}'/>

我的评级明星就是这样......

enter image description here

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

enter image description here

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

当我再次刷新页面时,它显示(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

1 个答案:

答案 0 :(得分:1)

  

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

在这种情况下,您可能需要类似

的内容
grails.rateable.rater.evaluator = {
  grailsApplication.mainContext.springSecurityService.currentUser
}