Kapsam, bir koleksiyonun alt kümesidir. Karmaşık görünüyor mu? Değil. Şunu hayal edin:
Kullanıcılarınız var. Şimdi, bu Kullanıcılardan bazıları bülteninize abone oldu. Kullanıcı Veritabanına bir alan ekleyerek haber bülteni alan kişileri işaretlediniz (user.subscribed_to_newsletter = true). Doğal olarak, bazen haber bülteninize abone olan Kullanıcıları almak istersiniz.
Elbette bunu her zaman yapabilirsiniz:
User.where(subscribed_to_newsletter: true).each do #something
Her zaman bunu yazmak yerine, bunun gibi bir şey yapabilirsiniz.
#File: users.rb
class User < ActiveRecord::Base
scope :newsletter, where(subscribed_to_newsletter: true)
#yada yada
end
Rails 4 veya daha yenisini kullanıyorsanız , bunun yerine şunu yapın:
#File: users.rb
class User < ActiveRecord::Base
scope :newsletter, -> { where(subscribed_to_newsletter: true) }
#yada yada
end
Bu, abonelerinize yalnızca şunu yaparak erişmenizi sağlar:
User.newsletter.each do #something
Bu çok basit bir örnektir ancak genel olarak kapsamlar işinizi kolaylaştırmak için çok güçlü araçlar olabilir.
Bu bağlantıya göz atın: API Açıklaması