यह एक साधारण सवाल हो सकता है, लेकिन मैं यहां एक सुरुचिपूर्ण समाधान खोजने के लिए अपने बालों को खींच रहा हूं। मैं उन दोनों के बीच एक has_one और belongs_to संघ के साथ दो ActiveRecord मॉडल श्रेणियां होती हैं,:पूछताछ में शून्य है_ऑन एसोसिएशन जहां क्वेरी
class Item < ActiveRecord::Base
has_one :purchase
end
class Purchase < ActiveRecord::Base
belongs_to :item
end
मैं सभी आइटम वस्तुओं को खोजने के लिए एक सुंदर तरीका के लिए देख रहा हूँ, है कि उन लोगों के साथ जुड़ा हुआ कोई खरीद वस्तु, आदर्श का सहारा के बिना एक बूलियन is_purchased
या आइटम पर समान विशेषता है।
अभी मेरे पास है:
purchases = Purchase.all
Item.where('id not in (?)', purchases.map(&:item_id))
कौन सा काम करता है, लेकिन मेरे लिए अक्षम लगता है, के रूप में यह दो प्रश्नों प्रदर्शन कर रहा है (और खरीद एक बड़े पैमाने पर रिकॉर्ड सेट किया जा सकता है)।
रनिंग रेल 3.1.0
वह लिंक सही है! जॉइन काफी सटीक है जो मुझे चाहिए था, मुझे बस कहां से "जहां (" buy.item_id IS null ") के साथ प्रतिस्थापन करना था और यह जाना अच्छा है। धन्यवाद! –
यदि 'has_many' या 'has_one' का उपयोग कर आप' item.join (: खरीद) ' –