func Stringify(object interface{}) string { if obj, ok := object.(interface { Stringify() string }); ok { return obj.Stringify() } scope := gorm.Scope{Value: object} for _, column := range []string{"Name", "Title"} { if field, ok := scope.FieldByName(column); ok { return fmt.Sprintf("%v", field.Field.Interface()) } } if scope.PrimaryKeyZero() { return "" } else { return fmt.Sprintf("%v#%v", scope.GetModelStruct().ModelType.Name(), scope.PrimaryKeyValue()) } }
func stringify(object interface{}) string { if obj, ok := object.(interface { Stringify() string }); ok { return obj.Stringify() } scope := gorm.Scope{Value: object} for _, column := range []string{"Description", "Name", "Title", "Code"} { if field, ok := scope.FieldByName(column); ok { return fmt.Sprintf("%v", field.Field.Interface()) } } if scope.PrimaryField() != nil { if scope.PrimaryKeyZero() { return "" } return fmt.Sprintf("%v#%v", scope.GetModelStruct().ModelType.Name(), scope.PrimaryKeyValue()) } return fmt.Sprint(reflect.Indirect(reflect.ValueOf(object)).Interface()) }