请说明命名范围和模块之间的示例差异。
答案 0 :(得分:2)
如果要在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
模块有其他用例,这是我的经验中的主要用例。