Используйте InstanceSet / InstanceGet чтобы передать настройки текущему *Statement методам хуков, например:
type User struct { gorm.Model CreditCard CreditCard // ... }
func(u *User) BeforeCreate(tx *gorm.DB) error { myValue, ok := tx.InstanceGet("my_value") // ok => true // myValue => 123 }
type CreditCard struct { gorm.Model // ... }
// При создании связей, GORM создает новый `*Statement`, поэтому не может читать настройки других экземпляров func(card *CreditCard) BeforeCreate(tx *gorm.DB) error { myValue, ok := tx.InstanceGet("my_value") // ok => false // myValue => nil }