Ruby on rails 在Ruby或Rails中,为什么是;包括「;有时在课堂内,有时在课堂外?
我想Ruby on rails 在Ruby或Rails中,为什么是;包括「;有时在课堂内,有时在课堂外?,ruby-on-rails,ruby,module,mixins,Ruby On Rails,Ruby,Module,Mixins,我想 class ApplicationController < ActionController::Base include Foo class ApplicationController
class ApplicationController < ActionController::Base
include Foo
class ApplicationController
就是添加一个“mixin”——这样Foo模块中的所有方法都被视为ApplicationController的方法
但现在我看到的代码是
include Bar
class ApplicationController < ActionController::Base
include Foo
包含条
类ApplicationController
那么为什么它不在应用程序控制器的范围内呢?这与将其放在
ApplicationController
中的更常见用法有何不同 是的,include Foo
在类中向该类的祖先添加Foo
,从而使所有Foo
的实例方法可用于这些类的实例
在任何类定义之外,
include Foo
会将Foo
添加到对象的祖先。也就是说,这与在对象
类的定义中包含Foo
是一样的。这样做的用途是所有的Foo
实例方法现在都可以在任何地方使用。包括Bar
,就像这是一个有害的错误-它会改变应用程序控制器的方式,但也会改变应用程序中的其他对象。