3
我是Grails noob,所以請原諒我的noob問題。
我已經創建了一個域類User和Device。用戶擁有許多設備:設備和設備belongsTo用戶:用戶。
只有1設備將永遠屬於兩個用戶是很重要的,所以我的UserController的代碼如下所示:域名類hasMany無法添加條目
class UserController {
static allowedMethods = [create: 'POST']
def index() { }
def create() {
def user = User.findByUsername(request.JSON?.username)
def device = Device.findById(request.JSON?.deviceId)
if (device) {
device.user.devices.remove(device)
}
// device can only be owned by 1 person
def new_device = new Device(id: request.JSON?.deviceId, type: request.JSON?.deviceType)
if (!user) {
user = new User(
username: request.JSON?.username
)
user.devices = new HashSet() // without this I get null on the add in next line
user.devices.add(new_device)
user.save()
if(user.hasErrors()){
println user.errors
}
render "user.create " + request.JSON?.username + " devices.size " + user.devices.size()
} else {
user.devices.add(new_device)
user.save()
if(user.hasErrors()){
println user.errors
}
render "user.create exists, new token: " + user.token + " devices.size " + user.devices.size()
}
}
}
但現在我得到一個奇怪的服務器錯誤:
在設備進入空ID(不在異常發生後刷新會話)
我在這裏丟失了什麼?
非常感謝!
request.JSON?.deviceId的值是什麼?嘗試使用log.info打印它(request.JSON?.deviceId) – Paul 2012-02-10 19:38:11