Как стать автором
Обновить

Новое в Rails: named scopes

Время на прочтение1 мин
Количество просмотров1.1K
В Edge Rails появилась возможность определять именованые условия-фильтры для поиска:
class User < ActiveRecord::Base
named_scope :active, :conditions => {:active => true}
named_scope :inactive, :conditions => {:active => false}
named_scope :recent, lambda { { :conditions => ['created_at > ?', 1.week.ago] } }
end


Стандартное использоваине:
User.active
# = User.find(:all, :conditions => {:active => true})
User.inactive
# = User.find(:all, :conditions => {:active => false})
User.recent
# = User.find(:all, :conditions => ['created_at > ?', 1.week.ago])

К тому-же эти методы умеют гнездится:
User.active.recent

делает то-же, что
User.with_scope(:conditions => {:active => true}) do
User.find(:all, :conditions => ['created_at > ?', 1.week.ago])
end

а именно: находит всех активных пользователей зарегистрированных на прошлой неделе.
Чтобы воспользоваться этой функциональностью нужно иметь последние рельсы в vendor.
rake rails:freeze:edge
Теги:
Хабы:
Всего голосов 14: ↑11 и ↓3+8
Комментарии3

Публикации

Истории

Работа

Ruby on Rails
4 вакансии
Программист Ruby
4 вакансии

Ближайшие события

7 – 8 ноября
Конференция byteoilgas_conf 2024
МоскваОнлайн
7 – 8 ноября
Конференция «Матемаркетинг»
МоскваОнлайн
15 – 16 ноября
IT-конференция Merge Skolkovo
Москва
22 – 24 ноября
Хакатон «AgroCode Hack Genetics'24»
Онлайн
28 ноября
Конференция «TechRec: ITHR CAMPUS»
МоскваОнлайн
25 – 26 апреля
IT-конференция Merge Tatarstan 2025
Казань