バグのコントローラー:
これはバグの create メソッドです。印刷しbugInstance.activities
たところ、アクティビティ オブジェクトが含まれていました。
def create = {
def bugInstance = new Bug()
def activity = new Activity(description:"created")
bugInstance.properties = params
bugInstance.addToActivities(activity)
return [bugInstance: bugInstance]
}
次に、save メソッドを見て、まったく同じものを出力しました。結果は null です。そのため、作成したアクティビティが何らかの形で失われ、その理由がわかりません。これは本当にデフォルトの動作ですか? このような単純なコードが機能しない理由はないように思われるため、私は本当に基本的な間違ったことをしていますか?
def save = {
def bugInstance = new Bug(params)
println bugInstance.activities
if (bugInstance.save(flush: true)) {
flash.message = "${message(code: 'default.created.message', args: [message(code: 'bug.label', default: 'Bug'), bugInstance.id])}"
redirect(action: "show", id: bugInstance.id)
}
else {
render(view: "create", model: [bugInstance: bugInstance])
}
}
save メソッドにアクティビティを追加することでこれを回避できることはわかっていますが、create() -> save() からアクティビティが失われるのはなぜですか?