El where
método devuelve un ActiveRecord::Relation
objeto, y por sí mismo este objeto no emite una consulta de base de datos. Lo que importa es dónde usas este objeto. join
El método también carga de forma diferida la consulta de la base de datos utilizando la tabla asociada, pero solo carga el Home
tabla en la memoria como el User
asociado no se requiere mesa. Luego tienes merge
, qué merge
El método es una forma simple de usar un alcance con nombre en un modelo unido. Algo como
class Home < ActiveRecord::Base
has_many :users
end
class User < ActiveRecord::Base
belongs_to :home
scope :available, ->{ where(available: true) }
end