From a8492826a8bb3d3d611a7527976ef33d76c6df5d Mon Sep 17 00:00:00 2001 From: jnfeinstein Date: Thu, 27 Nov 2014 13:59:49 -0800 Subject: [PATCH] Fields are only cached when withRelation, so they should only be accessed when withRelation. The result of .Fields() is quite different with and without withRelation. I assume that if you call it without withRelation, you don't want the fields that were cached when withRelation was true. --- scope.go | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/scope.go b/scope.go index 8c09cedc..8ced3fd3 100644 --- a/scope.go +++ b/scope.go @@ -411,10 +411,11 @@ func (scope *Scope) fieldFromStruct(fieldStruct reflect.StructField, withRelatio // Fields get value's fields func (scope *Scope) Fields(noRelations ...bool) map[string]*Field { - if scope.fields != nil { + var withRelation = len(noRelations) == 0 + + if withRelation && scope.fields != nil { return scope.fields } - var withRelation = len(noRelations) == 0 var fields = map[string]*Field{} if scope.IndirectValue().IsValid() && scope.IndirectValue().Kind() == reflect.Struct {