Вы бы использовали именованную область, если вы хотите упаковать в 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
У модуля есть другие варианты использования, это основной из моего опыта.