Cakupan adalah bagian dari koleksi. Kedengarannya rumit? Tidak. Bayangkan ini:
Anda memiliki Pengguna. Sekarang, beberapa dari Pengguna tersebut berlangganan buletin Anda. Anda menandai mereka yang menerima buletin dengan menambahkan bidang ke Database Pengguna (user.subscribed_to_newsletter = true). Biasanya, terkadang Anda ingin mendapatkan Pengguna yang berlangganan buletin Anda.
Anda dapat, tentu saja, selalu melakukan ini:
User.where(subscribed_to_newsletter: true).each do #something
Alih-alih selalu menulis ini, Anda dapat melakukan sesuatu seperti ini.
#File: users.rb
class User < ActiveRecord::Base
scope :newsletter, where(subscribed_to_newsletter: true)
#yada yada
end
Jika Anda menggunakan Rails 4 atau yang lebih baru , lakukan ini sebagai gantinya:
#File: users.rb
class User < ActiveRecord::Base
scope :newsletter, -> { where(subscribed_to_newsletter: true) }
#yada yada
end
Ini memungkinkan Anda untuk mengakses pelanggan Anda hanya dengan melakukan ini:
User.newsletter.each do #something
Ini adalah contoh yang sangat sederhana tetapi secara umum cakupan dapat menjadi alat yang sangat berguna untuk memudahkan pekerjaan Anda.
Lihat tautan ini: Deskripsi API