現在のセッションのドメイン クラス User にアクセスする必要があります。次のコードが機能します。
class RatingController {
def rate = {
def rating = params.rating
def artist = Artist.get( params.id )
def user = User.get(1)
user.addToRatings(new Rating(artist:artist, rating:rating))
user.save()
render(template: "/artist/rate", model: [artist: artist, rating: rating])
}
}
しかし、ID が 1 のユーザーを明示的に取得する (User.get(1)) 代わりに、現在のセッションのユーザーにアクセスする必要があります。次のコードを試しましたが、うまくいきません。
class RatingController {
def rate = {
def rating = params.rating
def artist = Artist.get( params.id )
def user = user.session
user.addToRatings(new Rating(artist:artist, rating:rating))
user.save()
render(template: "/artist/rate", model: [artist: artist, rating: rating])
}
}
私はまだ httpSession の概念を完全に理解するのに苦労しているので、少し助けていただければ幸いです。少し早いですがお礼を。
アップデート
私の UserController では、認証は次のようになります。
def authenticate = {
def user = User.findByLoginAndPassword(params.login, params.password)
if(user){
session.user = user
flash.message = "Hello ${user.name}!"
redirect(controller:"event", action:"list")
}else{
flash.message = "Sorry, ${params.login}. Please try again."
redirect(action:"create")
}
}