#ドキュメントのhas manyを見る
https://gorm.io/docs/has_many.html
##追記
根本的に間違っていました。
同じような間違いをしている誰かの参考になればと思います。
#エラー内容
// Vote model
type Vote struct {
gorm.Model
ID uint
Title string
Description string
WorkSheets []Worksheet
}
// Worksheet model
type Worksheet struct {
gorm.Model
ID uint
Text string
VoteNumber uint
}
VoteのWorksheetsには特に外部キーの指定等をしていません
すると・・・
invalid field found for struct main.Vote's field WorkSheets,
need to define a foreign key for relations or it need to implement the Valuer/Scanner interface
外部キーを定義しなさいと怒られます。
#改善コード
// Vote model
type Vote struct {
gorm.Model
ID uint
Title string
Description string
//外部キーの定義を追加
WorkSheets []Worksheet `gorm:"foreignKey:ID"`
}
// Worksheet model
type Worksheet struct {
gorm.Model
ID uint
Text string
VoteNumber uint
}
WorksheetのIDを外部キーにしています
#本当の解決
// Vote model
type Vote struct {
gorm.Model
Title string
Description string
WorkSheets []Worksheet
}
// Worksheet model
type Worksheet struct {
gorm.Model
Text string
//追加
VoteID int
VoteNumber int
}
has manyのmany側に、主キー用のフィールドを追加しておく必要があったようです。
完全に勘違いしていました。