【发布时间】:2011-09-24 02:48:28
【问题描述】:
我正在使用 Grails,并且我有一个域模型,该域模型具有多个 hasMany 属性到同一个域类,如下所示:
static hasMany = [ posts : Post, likes : Post, dislikes : Post ]
我遇到的问题是,当我将某些内容添加到帖子列表时,它也会以某种方式进入喜欢和不喜欢列表。至少,当我遍历每个列表时,它看起来是这样的。
我认为问题在于我的 Post 域中也有以下关系:
static belongsTo = [ contributer : Contributer ]
配置这些关系以使我的模型工作的最佳方法是什么?有什么建议吗?
@韦恩,
我也尝试过使用您的测试,并且成功通过了。所以,我唯一能想到的就是我的 PostController 中的保存方法有问题。我已经粘贴了下面的相关代码(我使用的是 Spring Security Core 插件,我的 Contribute 类扩展了使用该插件创建的 User 类):
@Secured(['IS_AUTHENTICATED_FULLY'])
def save = {
def props = [title:params.title, post:params.post, category:Category.get(params.category.id)]
def user = Contributer.get(springSecurityService.principal.id)
def postInstance = new Post(props)
postInstance.contributer = user
if (postInstance.save(flush: true)) {
flash.message = "${message(code: 'default.created.message', args: [message(code: 'post.label', default: 'Post'), postInstance.id])}"
redirect(action: "show", id: postInstance.id)
}
else {
render(view: "create", model: [postInstance: postInstance])
}
}
这里有什么突出的吗?
【问题讨论】:
-
当您向贡献者添加帖子时,您是执行“myPost.contributer=myContribute”还是“myContributer.addToPosts(myPost)”?
-
@fixitaagain,感谢您的回复。两种方法我都试过了,结果一样。
标签: grails grails-orm has-many