gpt4 book ai didi

grails - grails更新收藏夹onclick

转载 作者:行者123 更新时间:2023-12-02 14:50:52 25 4
gpt4 key购买 nike

我正在寻找一种方法来设置myFavorite表,在其中我希望将列表项onclick保存到myFavorite中。

我在这里

class user {  
static hasMany [favorite : Favorite]
}

class Favorite {
//(no fields) just the two static's below
static belongsTo [user :user]
static hasMany [music : Music]
}

static constraints = {
id bindable: true
//id generator:'assigned'
user unique: true
music nullable: true
}

目的是每人保留一个favorite.id,并在相同的ID下添加音乐。

这是我的 Controller
def save() {
def authenticatedUser = User.findByUsername(springSecurityService.principal.username)
def principal = springSecurityService.principal

int userid = principal.id // id of the person logged in
def favorits = new Favorite(params) // form data
def check = Favorite.findByUsers(authenticatedUser) // check if myFavorite exist for user
def ids = check.id // id of the myFavorite
def tracks = check.tracks.id + favorits.tracks.id

def test2 = new Favorite(id:ids, 'users': userid, 'tracks': tracks)

if (check == null){// if user don't have Favorite create one
authenticatedUser.addToFavorite(favorits)
authenticatedUser.save flush: true

}

//render([test2] as JSON)
//test2.save flush: true
update(test2)
}

“test2.save flush:true”可以工作,但是它会创建新的Favorite.ID来更新我传递的ID。

Update(test2)还会创建一个新的ID,用于更新我正在传递的ID。

最佳答案

不要这样做:

def test2 = new Favorite(id:ids, 'users': userid, 'tracks': tracks)

您将在此处创建一个全新的 Favourite实例。如果要更新现有的 Favourite,则需要从数据库中检索现有实例,然后对其进行更改。尝试这样的事情:
def test2 = Favourite.get(ids) //get the existing favourite by id
test2.users = ... //update some properties
test2.save()

关于grails - grails更新收藏夹onclick,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30370555/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com