Область - це підмножина колекції. Звучить складно? Це не так. Уявіть собі це:
У вас є користувачі. Зараз деякі з цих користувачів підписані на вашу розсилку. Ви позначили тих, хто отримує інформаційний бюлетень, додавши поле до Бази даних користувачів (user.subscribed_to_newsletter = true). Природно, вам іноді хочеться отримати тих користувачів, які підписалися на вашу розсилку.
Ви, звичайно, завжди можете це зробити:
User.where(subscribed_to_newsletter: true).each do #something
Замість того, щоб завжди писати це, ви могли б зробити щось подібне.
#File: users.rb
class User < ActiveRecord::Base
scope :newsletter, where(subscribed_to_newsletter: true)
#yada yada
end
Якщо ви використовуєте Rails 4 або новішу версію , зробіть це замість цього:
#File: users.rb
class User < ActiveRecord::Base
scope :newsletter, -> { where(subscribed_to_newsletter: true) }
#yada yada
end
Це дозволяє отримати доступ до своїх передплатників, просто зробивши це:
User.newsletter.each do #something
Це дуже простий приклад, але загалом області застосування можуть бути дуже потужними інструментами для полегшення вашої роботи.
Перевірте це посилання: Опис API