De where methode retourneert een ActiveRecord::Relation object, en op zichzelf geeft dit object geen databasequery uit. Het is waar u dit object gebruikt dat ertoe doet. join methode en laadt de databasequery lui door de bijbehorende tabel te gebruiken, maar laadt alleen de Home tabel in het geheugen als de bijbehorende User tafel is niet nodig. Daarna heb je merge , wat merge methode doet is een eenvoudige manier om een benoemd bereik op een samengevoegd model te gebruiken. Iets als
class Home < ActiveRecord::Base
has_many :users
end
class User < ActiveRecord::Base
belongs_to :home
scope :available, ->{ where(available: true) }
end