именованная область действия против модуля в ruby on rails

#ruby-on-rails #ruby

#ruby-on-rails #ruby

Вопрос:

Пожалуйста, объясните на примере разницу между именованной областью и модулем.

Комментарии:

1. На самом деле они не связаны. Возможно, это поможет, если вы укажете свою цель их сравнения?

2. Я думаю, он спрашивает о разнице между именованным пространством и модулем.

Ответ №1:

Вы бы использовали именованную область, если хотите упаковать несколько условий в Rails, таких как:

 named_scope :active, :conditions => ['active = ?', true]
named_scope :legal_age, :conditions => ['age > ?', 21]
  

хорошим преимуществом именованных областей является то, что вы можете связать их вместе. например:

 user.active.legal_age
  

Модуль используется для группировки похожих объектов вместе. Итак, обычно, если у вас есть код, который должен быть общим для всего вашего приложения, вы должны определить модуль в своем каталоге lib и поместить такие классы, как.

 module MyModule
   class MyClass
     ....
   end
end
  

У модуля есть другие варианты использования, это основной из моего опыта.