diff --git a/callback_create.go b/callback_create.go index 7d57f1bd..260066fe 100644 --- a/callback_create.go +++ b/callback_create.go @@ -61,7 +61,7 @@ func Create(scope *Scope) { if scope.Err(err) == nil { scope.db.RowsAffected, _ = result.RowsAffected() if primaryField != nil { - scope.SetColumn(primaryField, id) + scope.Err(scope.SetColumn(primaryField, id)) } } } diff --git a/callback_shared.go b/callback_shared.go index 56238cb6..ae7b99da 100644 --- a/callback_shared.go +++ b/callback_shared.go @@ -21,7 +21,7 @@ func SaveBeforeAssociations(scope *Scope) { value := field.Field scope.Err(scope.NewDB().Save(value.Addr().Interface()).Error) if relationship.ForeignFieldName != "" { - scope.SetColumn(relationship.ForeignFieldName, scope.New(value.Addr().Interface()).PrimaryKeyValue()) + scope.Err(scope.SetColumn(relationship.ForeignFieldName, scope.New(value.Addr().Interface()).PrimaryKeyValue())) } } } @@ -43,11 +43,11 @@ func SaveAfterAssociations(scope *Scope) { newScope := newDB.NewScope(elem) if relationship.JoinTable == "" && relationship.ForeignFieldName != "" { - newScope.SetColumn(relationship.ForeignFieldName, scope.PrimaryKeyValue()) + scope.Err(newScope.SetColumn(relationship.ForeignFieldName, scope.PrimaryKeyValue())) } if relationship.PolymorphicType != "" { - newScope.SetColumn(relationship.PolymorphicType, scope.TableName()) + scope.Err(newScope.SetColumn(relationship.PolymorphicType, scope.TableName())) } scope.Err(newDB.Save(elem).Error) @@ -77,11 +77,11 @@ func SaveAfterAssociations(scope *Scope) { elem := value.Addr().Interface() newScope := scope.New(elem) if relationship.ForeignFieldName != "" { - newScope.SetColumn(relationship.ForeignFieldName, scope.PrimaryKeyValue()) + scope.Err(newScope.SetColumn(relationship.ForeignFieldName, scope.PrimaryKeyValue())) } if relationship.PolymorphicType != "" { - newScope.SetColumn(relationship.PolymorphicType, scope.TableName()) + scope.Err(newScope.SetColumn(relationship.PolymorphicType, scope.TableName())) } scope.Err(scope.NewDB().Save(elem).Error) } diff --git a/field.go b/field.go index 7e3f1400..e122adb4 100644 --- a/field.go +++ b/field.go @@ -18,7 +18,7 @@ func (field *Field) Set(value interface{}) error { } if !field.Field.CanAddr() { - return errors.New("field value not addressable") + return errors.New("unaddressable value") } if rvalue, ok := value.(reflect.Value); ok {