Grails Rateable Plugin не сохраняет рейтинг в базе данных

Я новичок в Grails. Я использую плагин Rateable для интеграции функции рейтинга пользователя в моем приложении 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

1 ответ

Решение

Я использую Spring Security Core Plugin для аутентификации

В этом случае вы, вероятно, хотите что-то вроде

grails.rateable.rater.evaluator = {
  grailsApplication.mainContext.springSecurityService.currentUser
}
Другие вопросы по тегам