Добавление находит условие ко всем Активным Рекордным Моделям в направляющих

Успешная интеграция различных парадигм программирования в единственные среды программирования.

образец этого (для меня) система программирования Mozart/Oz , который интегрируется функциональный, OO, логика, параллельные и распределенные механизмы программирования в единое целое. Существуют другие примеры все же.

6
задан stellard 25 August 2009 в 08:11
поделиться

1 ответ

Вы можете использовать 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.
17
ответ дан 8 December 2019 в 13:47
поделиться
Другие вопросы по тегам:

Похожие вопросы: