协会不适用于测试条目

Associations not working with test entries

我在 GORM 中定义了两个模型用户和地址: 文件 user.go

type User struct {
    gorm.Model
    Identity     string    `json:"identity"`
    Password     string    `json:"password"`
    Address      Address
    AddressID    int
}

type Address struct {
    gorm.Model
    Street       string `json:"street"`
    StreetNumber string `json:"streetnumber"`
}

在 main.go 文件中,我启动了数据库,自动迁移并想向数据库添加一个测试用户:

database.InitDatabase()

database.DBConn.AutoMigrate(&user.User{})
database.DBConn.AutoMigrate(&user.Address{})

userRec := &user.User{ Identity: "John Wayne", Password: "mysecretpassword", Address: user.Address{Street: "Teststreet", StreetNumber: "1"}}

database.DBConn.Create(userRec)

创建了用户和地址,但是,地址与用户没有关联,只是 出现空地址字段。我忘记了什么?

如果您的实体中有关联(使用嵌套模型),这是设置测试条目的正常方法吗?

尝试将“address_id”字段用作 foreignKey

例如

type User struct {
    gorm.Model
    Identity     string     `json:"identity"`
    Password     string     `json:"password"`
    Address      Address    `gorm:"foreignKey:address_id;association_autoupdate:false"`
    AddressID    uint       `json:"address_id"`
}

Online documentation

也许会有帮助。