मेरे पास एक क्वेरी है जो एक ही तालिका में दो अलग-अलग फ़ील्ड खोजती है ... उन स्थानों की तलाश में जो एक विशिष्ट शहर की संभावना है, लेकिन यह एक देश भी हो सकता है ... यानी दो क्षेत्रों की आवश्यकता है।रेल यूनियन हैक, एक साथ दो अलग-अलग प्रश्नों को कैसे खींचें
टेबल लगता है:
Country City
Germany Aachen
USA Amarillo
USA Austin
परिणाम:
Keyword Sideinfo
Aachen Germany
USA Country
Austin USA
Germany Country
मूल रूप से अगर वहाँ क्योंकि मैं तो दो अलग-अलग प्रश्नों का उपयोग करने के लिए उन्हें जोड़ने के लिए किया था यह करने के लिए अधिक संक्षिप्त तरीका है मैं सोच रहा हूँ
एक साथ, उन्हें सॉर्ट आदि (जो ठीक काम करता है):
def self.ajax(search)
countries = Location.find(:all, :select=> 'country AS keyword, "Country" AS sideinfo', :joins => :hotels, :conditions => [ 'hotels.email IS NOT NULL AND country LIKE ?', "#{search}%" ], :group => :country)
cities = Location.find(:all, :select=> 'city AS keyword, country AS sideinfo', :joins => :hotels, :conditions => [ 'hotels.email IS NOT NULL AND city LIKE ?', "#{search}%" ], :group => :city)
out = cities + countries
out = out.sort { |a,b| a.keyword <=> b.keyword }
out.first(8)
end
मैं इस पर कोई जानकारी नहीं मिली है कि कैसे करने के लिए ActiveRecord का उपयोग कर संघ ...
यह प्रश्न डि ActiveRecord में उपयोग करने के लिए cusses तरीकों या नकली संघों: http://stackoverflow.com/questions/6686920/activerecord-query-union –