where
विधि एक ActiveRecord::Relation
लौटाती है ऑब्जेक्ट, और अपने आप में यह ऑब्जेक्ट डेटाबेस क्वेरी जारी नहीं करता है। यह वह जगह है जहाँ आप इस वस्तु का उपयोग करते हैं जो मायने रखती है। join
विधि के साथ-साथ आलसी डेटाबेस क्वेरी को संबंधित तालिका का उपयोग करके लोड करता है, लेकिन केवल Home
. लोड कर रहा है संबंधित User
. के रूप में स्मृति में तालिका तालिका की आवश्यकता नहीं है। बाद में आपके पास merge
है , क्या merge
विधि करता है एक सम्मिलित मॉडल पर नामित दायरे का उपयोग करने का एक आसान तरीका है। कुछ इस तरह
class Home < ActiveRecord::Base
has_many :users
end
class User < ActiveRecord::Base
belongs_to :home
scope :available, ->{ where(available: true) }
end