Yani asıl sorunun cevabı, 'veya' yerine 'ile kapsamlara katılabilir misiniz? Ve “hayır yapamazsınız” gibi görünüyor. Ancak işi yapan tamamen farklı bir kapsamı veya sorguyu elle kodlayabilir veya ActiveRecord'dan MetaWhere veya Squeel gibi farklı bir çerçeve kullanabilirsiniz. Benim durumumda yararlı değil
Ben 'veya' seçmekten biraz daha fazlasını yapar pg_search tarafından oluşturulan bir kapsam, temiz bir birlik karışıklık yapar ASC tarafından sipariş içerir. Pg_search'te yapamayacağım şeyler yapan el işi bir kapsamla 'veya' istiyorum. Bu yüzden böyle yapmak zorunda kaldım.
Product.find_by_sql("(#{Product.code_starts_with('Tom').to_sql}) union (#{Product.name_starts_with('Tom').to_sql})")
Kapsamları sql'ye çevirin, her birinin etrafına parantez koyun, birleştirin ve üretilen sql'i kullanarak find_by_sql. Biraz saçma, ama işe yarıyor.
Hayır, bana pg_search'te "karşı: [: name,: code]" kullanabileceğimi söyleme, bunu yapmak istiyorum, ancak 'name' alanı pg_search'ün işleyemeyeceği bir hstore hala. Bu nedenle, isme göre kapsamın elle hazırlanması ve daha sonra pg_search kapsamıyla birleştirilmesi gerekir.