Groovy nd Grails の初心者です。外部キーを子テーブルに保存する方法がわかりません。Person と Telephone という 2 つのドメイン クラスがあります。保存しようとしましたが、うまくいきません。助けてください。
Person.groovy
class Person {
String name
String password
static constraints = {
name(blank:false)
password(blank:false)
}
static hasMany = [telephone:Telephone]
@Override
public String toString() {
// TODO Auto-generated method stub
name
}
}
Telephone.groovy
class Telephone {
String number
Person person
static constraints = {
number(blank:false)
person()
}
static belongsTo = [person:Person]
@Override
public String toString() {
// TODO Auto-generated method stub
number
}
}
セッション変数に格納されたログイン個人 ID。
session.setAttribute("user_id")
次に、番号を保存しようとしました。
TelephoneController.groovy
class TelephoneController {
def index() {
redirect(action:'create')
}
def create(){
}
def save(){
def number=new Telephone(params)
int user_id=Integer.parseInt(session.getAttribute("user_id").toString())
params.person=user_id
if(!number.hasErrors() && number.save()){
println "save"
flash.toUser="Person Details [${number.number}] has been added."
redirect(view:'create')
}
}
}
しかし、うまくいきません。助けてください。