Вы можете использовать default_scope
:
class ExampleModel < ActiveRecord::Base
default_scope :conditions => ["status = ?", "active"]
end
Если вы хотите использовать это во всех своих моделях, вы можете использовать подкласс ActiveRecord::Base
и использовать его во всех ваших моделях (вероятно, не очень хорошо работает с наследованием одной таблицы):
class MyModel < ActiveRecord::Base
default_scope :conditions => ["status = ?", "active"]
end
class ExampleModel < MyModel
end
... или вы можете установить default_scope
на ActiveRecord::Base
(это может раздражать, если вы решите, что одна модель не должна иметь эту область по умолчанию):
class ActiveRecord::Base
default_scope :conditions => ["status = ?", "active"]
end
class ExampleModel < ActiveRecord::Base
end
Как упомянуто klochner в комментарии, вы также можете рассмотреть возможность добавления named_scope
к ActiveRecord::Base
с именем active
, например:
class ActiveRecord::Base
named_scope :active, :conditions => ["status = ?", "active"]
end
class ExampleModel < ActiveRecord::Base
end
ExampleModel.active # Return all active items.