именованная область действия против модуля в ruby ​​на рельсах - PullRequest
0 голосов
/ 20 апреля 2011

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

1 Ответ

2 голосов
/ 20 апреля 2011

Вы бы использовали именованную область, если вы хотите упаковать в 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

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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...