removing scope from passing
This commit is contained in:
parent
51de8ca836
commit
17a2b1f341
@ -76,7 +76,7 @@ func createCallback(scope *Scope) {
|
|||||||
}
|
}
|
||||||
} else if field.UseEncoder {
|
} else if field.UseEncoder {
|
||||||
if enc, ok := scope.Value.(Encoder); ok {
|
if enc, ok := scope.Value.(Encoder); ok {
|
||||||
if val, err := enc.EncodeField(scope, field.DBName); err == nil {
|
if val, err := enc.EncodeField(field.DBName); err == nil {
|
||||||
columns = append(columns, scope.Quote(field.DBName))
|
columns = append(columns, scope.Quote(field.DBName))
|
||||||
placeholders = append(placeholders, scope.AddToVars(val))
|
placeholders = append(placeholders, scope.AddToVars(val))
|
||||||
} else {
|
} else {
|
||||||
|
@ -82,7 +82,7 @@ func updateCallback(scope *Scope) {
|
|||||||
}
|
}
|
||||||
} else if field.UseEncoder {
|
} else if field.UseEncoder {
|
||||||
if enc, ok := scope.Value.(Encoder); ok {
|
if enc, ok := scope.Value.(Encoder); ok {
|
||||||
if val, err := enc.EncodeField(scope, field.DBName); err == nil {
|
if val, err := enc.EncodeField(field.DBName); err == nil {
|
||||||
sqls = append(sqls, fmt.Sprintf("%v = %v", scope.Quote(field.DBName), scope.AddToVars(val)))
|
sqls = append(sqls, fmt.Sprintf("%v = %v", scope.Quote(field.DBName), scope.AddToVars(val)))
|
||||||
} else {
|
} else {
|
||||||
scope.Err(err)
|
scope.Err(err)
|
||||||
|
@ -2,14 +2,13 @@ package gorm
|
|||||||
|
|
||||||
// Encoder is a value encoding interface for complex field types
|
// Encoder is a value encoding interface for complex field types
|
||||||
type Encoder interface {
|
type Encoder interface {
|
||||||
EncodeField(*Scope, string) (interface{}, error)
|
EncodeField(column string) (interface{}, error)
|
||||||
DecodeField(scope *Scope, column string, value interface{}) error
|
DecodeField(column string, value interface{}) error
|
||||||
}
|
}
|
||||||
|
|
||||||
// decoder defers decoding until necessary
|
// decoder defers decoding until necessary
|
||||||
type decoder struct {
|
type decoder struct {
|
||||||
Encoder
|
Encoder
|
||||||
scope *Scope
|
|
||||||
column string
|
column string
|
||||||
value interface{}
|
value interface{}
|
||||||
}
|
}
|
||||||
@ -17,7 +16,6 @@ type decoder struct {
|
|||||||
func newDecoder(encoder Encoder, scope *Scope, column string) *decoder {
|
func newDecoder(encoder Encoder, scope *Scope, column string) *decoder {
|
||||||
return &decoder{
|
return &decoder{
|
||||||
encoder,
|
encoder,
|
||||||
scope,
|
|
||||||
column,
|
column,
|
||||||
nil,
|
nil,
|
||||||
}
|
}
|
||||||
@ -31,5 +29,5 @@ func (d *decoder) Scan(src interface{}) error {
|
|||||||
|
|
||||||
// Decode handles the decoding at a later time
|
// Decode handles the decoding at a later time
|
||||||
func (d *decoder) Decode() error {
|
func (d *decoder) Decode() error {
|
||||||
return d.DecodeField(d.scope, d.column, d.value)
|
return d.DecodeField(d.column, d.value)
|
||||||
}
|
}
|
||||||
|
Loading…
x
Reference in New Issue
Block a user