@@ -209,11 +209,13 @@ def build_singleton_methods
209
209
210
210
klass . scope method_names [ :containing ] , -> ( value ) do
211
211
value = arel_table [ value ] if value . is_a? ( Symbol )
212
+ value = ::Arel . sql ( connection . quote ( value ) ) unless value . respond_to? ( :cast )
212
213
where ( builder . arel_attribute . contains ( value ) )
213
214
end
214
215
215
216
klass . scope method_names [ :not_containing ] , -> ( value ) do
216
217
value = arel_table [ value ] if value . is_a? ( Symbol )
218
+ value = ::Arel . sql ( connection . quote ( value ) ) unless value . respond_to? ( :cast )
217
219
where . not ( builder . arel_attribute . contains ( value ) )
218
220
end
219
221
@@ -224,6 +226,8 @@ def build_singleton_methods
224
226
value = ::Arel . sql ( connection . quote ( value ) )
225
227
right = ::Arel . sql ( connection . quote ( right ) )
226
228
value = builder . arel_convert_to_type ( value , right )
229
+ elsif !value . respond_to? ( :cast )
230
+ value = ::Arel . sql ( connection . quote ( value ) )
227
231
end
228
232
229
233
where ( builder . arel_attribute . overlaps ( value ) )
@@ -236,6 +240,8 @@ def build_singleton_methods
236
240
value = ::Arel . sql ( connection . quote ( value ) )
237
241
right = ::Arel . sql ( connection . quote ( right ) )
238
242
value = builder . arel_convert_to_type ( value , right )
243
+ elsif !value . respond_to? ( :cast )
244
+ value = ::Arel . sql ( connection . quote ( value ) )
239
245
end
240
246
241
247
where . not ( builder . arel_attribute . overlaps ( value ) )
@@ -276,6 +282,7 @@ def build_singleton_methods
276
282
if threshold . present?
277
283
klass . scope method_names [ :real_containing ] , -> ( value ) do
278
284
value = arel_table [ value ] if value . is_a? ( Symbol )
285
+ value = ::Arel . sql ( connection . quote ( value ) ) unless value . respond_to? ( :cast )
279
286
where ( builder . real_arel_attribute . contains ( value ) )
280
287
end
281
288
@@ -286,6 +293,8 @@ def build_singleton_methods
286
293
value = ::Arel . sql ( connection . quote ( value ) )
287
294
right = ::Arel . sql ( connection . quote ( right ) )
288
295
value = builder . arel_convert_to_type ( value , right )
296
+ elsif !value . respond_to? ( :cast )
297
+ value = ::Arel . sql ( connection . quote ( value ) )
289
298
end
290
299
291
300
where ( builder . real_arel_attribute . overlaps ( value ) )
@@ -327,11 +336,13 @@ def build_singleton_methods
327
336
unless type . eql? ( :daterange )
328
337
klass . scope method_names [ :containing_date ] , -> ( value ) do
329
338
value = arel_table [ value ] if value . is_a? ( Symbol )
339
+ value = ::Arel . sql ( connection . quote ( value ) ) unless value . respond_to? ( :cast )
330
340
where ( builder . arel_daterange . contains ( value ) )
331
341
end
332
342
333
343
klass . scope method_names [ :not_containing_date ] , -> ( value ) do
334
344
value = arel_table [ value ] if value . is_a? ( Symbol )
345
+ value = ::Arel . sql ( connection . quote ( value ) ) unless value . respond_to? ( :cast )
335
346
where . not ( builder . arel_daterange . contains ( value ) )
336
347
end
337
348
@@ -342,6 +353,8 @@ def build_singleton_methods
342
353
value = ::Arel . sql ( connection . quote ( value ) )
343
354
right = ::Arel . sql ( connection . quote ( right ) )
344
355
value = builder . arel_convert_to_type ( value , right , :daterange )
356
+ elsif !value . respond_to? ( :cast )
357
+ value = ::Arel . sql ( connection . quote ( value ) )
345
358
end
346
359
347
360
where ( builder . arel_daterange . overlaps ( value ) )
@@ -354,6 +367,8 @@ def build_singleton_methods
354
367
value = ::Arel . sql ( connection . quote ( value ) )
355
368
right = ::Arel . sql ( connection . quote ( right ) )
356
369
value = builder . arel_convert_to_type ( value , right , :daterange )
370
+ elsif !value . respond_to? ( :cast )
371
+ value = ::Arel . sql ( connection . quote ( value ) )
357
372
end
358
373
359
374
where . not ( builder . arel_daterange . overlaps ( value ) )
0 commit comments