Das where
-Methode gibt eine ActiveRecord::Relation
zurück Objekt, und dieses Objekt selbst gibt keine Datenbankabfrage aus. Es kommt darauf an, wo Sie dieses Objekt verwenden. join
-Methode lädt ebenfalls faul die Datenbankabfrage, indem sie die zugehörige Tabelle verwendet, aber nur das Home
lädt Tabelle als zugeordneter User
in den Speicher Tisch ist nicht erforderlich. Danach haben Sie merge
, was merge
Die Methode does ist eine einfache Möglichkeit, einen benannten Bereich für ein verbundenes Modell zu verwenden. Etwas wie
class Home < ActiveRecord::Base
has_many :users
end
class User < ActiveRecord::Base
belongs_to :home
scope :available, ->{ where(available: true) }
end