@@ -7,7 +7,7 @@ class Builder
77
88 def initialize ( klass , opts = { } )
99 @klass = klass
10- @primary_key = nil
10+ @primary_key = opts . fetch ( :primary_key , nil )
1111 @pagination_params = opts . fetch ( :pagination_params , { } )
1212 @path_params = opts . fetch ( :path_params , { } )
1313 @additional_params = opts . fetch ( :additional_params , { } )
@@ -87,12 +87,12 @@ def to_a
8787 def find ( args = { } )
8888 case args
8989 when Hash
90- where ( args )
90+ scope = where ( args )
9191 else
92- @primary_key = args
92+ scope = _new_scope ( primary_key : args )
9393 end
9494
95- klass . requestor . get ( params )
95+ klass . requestor . get ( scope . params )
9696 end
9797
9898 def method_missing ( method_name , *args , &block )
@@ -103,6 +103,7 @@ def method_missing(method_name, *args, &block)
103103
104104 def _new_scope ( opts = { } )
105105 self . class . new ( @klass ,
106+ primary_key : opts . fetch ( :primary_key , @primary_key ) ,
106107 pagination_params : @pagination_params . merge ( opts . fetch ( :pagination_params , { } ) ) ,
107108 path_params : @path_params . merge ( opts . fetch ( :path_params , { } ) ) ,
108109 additional_params : @additional_params . merge ( opts . fetch ( :additional_params , { } ) ) ,
0 commit comments