Ein Bereich ist eine Teilmenge einer Sammlung. Klingt kompliziert? Ist es nicht. Stell dir das vor:
Sie haben Benutzer. Einige dieser Benutzer haben jetzt Ihren Newsletter abonniert. Sie haben diejenigen markiert, die einen Newsletter erhalten, indem Sie der Benutzerdatenbank ein Feld hinzugefügt haben (user.subscribed_to_newsletter = true). Natürlich möchten Sie manchmal diejenigen Benutzer erhalten, die Ihren Newsletter abonniert haben.
Das können Sie natürlich immer tun:
User.where(subscribed_to_newsletter: true).each do #something
Anstatt dies immer zu schreiben, könnten Sie jedoch so etwas tun.
#File: users.rb
class User < ActiveRecord::Base
scope :newsletter, where(subscribed_to_newsletter: true)
#yada yada
end
Wenn Sie Rails 4 oder höher verwenden , gehen Sie stattdessen folgendermaßen vor:
#File: users.rb
class User < ActiveRecord::Base
scope :newsletter, -> { where(subscribed_to_newsletter: true) }
#yada yada
end
Auf diese Weise können Sie einfach auf Ihre Abonnenten zugreifen:
User.newsletter.each do #something
Dies ist ein sehr einfaches Beispiel, aber im Allgemeinen können Bereiche sehr leistungsfähige Werkzeuge sein, um Ihre Arbeit zu vereinfachen.
Schauen Sie sich diesen Link an: API-Beschreibung