where
metoda vrací ActiveRecord::Relation
objekt a tento objekt sám o sobě nevydává databázový dotaz. Důležité je, kde tento objekt použijete. join
metoda i líný načte databázový dotaz pomocí přidružené tabulky, ale načte pouze Home
tabulky do paměti jako přidružený User
tabulka není vyžadována. Poté máte merge
, co merge
metoda dělá je jednoduchý způsob použití pojmenovaného oboru na spojeném modelu. Něco jako
class Home < ActiveRecord::Base
has_many :users
end
class User < ActiveRecord::Base
belongs_to :home
scope :available, ->{ where(available: true) }
end