तो मूल प्रश्न का उत्तर, क्या आप 'या' के बजाय 'या' के साथ स्कोप्स में शामिल हो सकते हैं "ऐसा लगता है कि" आप नहीं कर सकते "। लेकिन आप कोड को पूरी तरह से अलग दायरे या क्वेरी को सौंप सकते हैं जो काम करता है, या ActiveRecord जैसे MetaWhere या Squeel से एक अलग फ्रेमवर्क का उपयोग कर सकता है। मेरे मामले में उपयोगी नहीं है
मैं 'pg_search' द्वारा उत्पन्न एक गुंजाइश 'या' कर रहा हूँ, जो कि चयन से थोड़ा अधिक है, इसमें ASC द्वारा आदेश शामिल है, जो एक स्वच्छ संघ की गड़बड़ी करता है। मैं इसे एक हैंडक्राफ्टेड स्कोप के साथ 'या' करना चाहता हूं जो सामान करता है जो मैं pg_search में नहीं कर सकता। इसलिए मुझे इसे इस तरह करना पड़ा है।
Product.find_by_sql("(#{Product.code_starts_with('Tom').to_sql}) union (#{Product.name_starts_with('Tom').to_sql})")
यानी स्कूप्स को sql में बदल देते हैं, हर एक के चारों ओर ब्रैकेट्स लगाते हैं, उन्हें एक साथ जोड़ते हैं और फिर sql उत्पन्न का उपयोग करके find_by_sql करते हैं। यह थोड़ा बकवास है, लेकिन यह काम करता है।
नहीं, मुझे नहीं बताएं कि मैं "खिलाफ: [: नाम,: कोड]" का उपयोग कर सकता हूं। अभी तक। इसलिए नाम से गुंजाइश को हाथ से तैयार किया जाना चाहिए और फिर pg_search गुंजाइश के साथ संघबद्ध किया जाना चाहिए।