Новое В Rails: Именованные Области Видимости

Edge Rails теперь имеет возможность определять именованные условия фильтра для поиска:

класс Пользователь < ActiveRecord::Base name_scope :active, :conditions => {:active => true} name_scope :inactive, :conditions => {:active => false} именованный_скоп :recent, лямбда { { :conditions => ['created_at > ?', 1.week.ago] } } конец
Стандартное использование:
Пользователь.

активный # = User.find(:all, :conditions => {:active => true}) Пользователь.

неактивный # = User.find(:all, :conditions => {:active => false}) Пользователь.

недавний # = User.find(:all, :conditions => ['created_at > ?', 1.неделя.

назад])

Кроме того, эти методы могут быть вложенными:
Пользователь.

активный.

недавний

делает то же самое
User.with_scope(:conditions => {:active => true}) do User.find(:all, :conditions => ['created_at > ?', 1.неделя.

назад]) конец

а именно: находит всех активных пользователей, зарегистрированных за последнюю неделю.

Чтобы использовать эту функциональность, вам необходимо иметь последнюю версию рельсов от поставщика.

грабли рельсы:freeze:edge
Теги: #edgerails #rails #ruby #ruby
Вместе с данным постом часто просматривают: